問題
當要使用 ListView 控制項的時候,會顯示出一群的資料在這個控制項中,此時,使用者可以點選 ListView 控制項中的任何一個項目,可是,這個時候,我們要如何知道使用者到底是點選了哪個資料項目呢?
解答
ListView 裡面有個屬性 SelectedItem,您可以在 Cod Behind 程式碼中,存取這個 ListView 物件的 SelectedItem 屬性,就可以得知使用者點選了哪筆紀錄。
若是採用 MVVM 的開發方式,我們處理邏輯程式碼將不會寫在 Code Behind 內,使用撰寫在 ViewModel 中,可以,在 ViewModel 內,無法得知當時是與哪個 View 綁定再一起,因此,無法直接存取 ListView 這個物件與其相關屬性。不過,您不用擔心,您可以使用 Data Binding 技術,綁定 ViewModel 內的某個 Property到 ListView.SelectedItem Attribute上:
SelectedItem="{Binding MyItemListSelected}"
;因此,若在 ViewModel 內,想要知道使用者點選了哪個項目,這個時候,就可直接存取 ViewModel 內的 MyItemListSelected 屬性,就會知道了。 <ListView
ItemsSource="{Binding MyItemList}"
SelectedItem="{Binding MyItemListSelected}"
Margin="20,0"
>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
...
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>