我为ItemClick
定义了ListView
事件处理程序。调用事件处理程序,但是当我第一次单击ListViewItem
时,SelectedItem
的{{1}}为空,ListView
为SelectedIndex
。但是,如果在-1
中未选择任何内容,我也希望在第一次点击时检索SelectedItem
。还有其他解决方案吗?感谢。
答案 0 :(得分:3)
正如miskohut指出你可以使用ItemClickEventArgs
,这是一个例子
private void listView_ItemClick(object sender, ItemClickEventArgs e)
{
MyItemModel item = (MyItemModel)e.ClickedItem;
//TODO:
}
答案 1 :(得分:2)
答案很简单。
`ItemClickEventArgs`
包含属性ClickedItem
,它是DataContext
的{{1}}类型的类型。
答案 2 :(得分:1)
更适合点击事件,获取点击的项目索引。例如,
private void Column_ItemClick(object sender, ItemClickEventArgs e)
{
ListView listView = (ListView)sender;
Tile clickedMenuItem = (Tile)e.ClickedItem; // Typecast the clicked menu item back to the content type of each list view item
// Key line is here:
int itemNumber = listView.Items.IndexOf(clickedMenuItem);
}
在listView.ItemClick += Column_ItemClick
事件的上述点击事件中,itemNumber
整数是所点击列表视图项的索引。
此解决方案避免了对所选项目的-1
索引响应,因为选择项目的单击事件仅在第二次单击菜单后才会发生。