UWP ListView ItemClick

时间:2016-04-25 16:41:03

标签: xaml win-universal-app

我为ItemClick定义了ListView事件处理程序。调用事件处理程序,但是当我第一次单击ListViewItem时,SelectedItem的{​​{1}}为空,ListViewSelectedIndex。但是,如果在-1中未选择任何内容,我也希望在第一次点击时检索SelectedItem。还有其他解决方案吗?感谢。

3 个答案:

答案 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索引响应,因为选择项目的单击事件仅在第二次单击菜单后才会发生。