【发布时间】:2016-01-20 13:12:49
【问题描述】:
我被这个小问题困扰了一段时间。 W10 下的 ListView 有一些我无法理解的奇怪行为。考虑一个简单的列表:
<ListView Name="myList" ItemClick="myList_ItemClick" SelectionChanged="myList_SelectionChanged" IsItemClickEnabled="True">
<ListView.Items>
<TextBlock Text="First item"/>
<TextBlock Text="Second item"/>
<TextBlock Text="Third item"/>
<TextBlock Text="Fifth item"/>
</ListView.Items>
</ListView>
以及背后的代码:
private void myList_ItemClick(object sender, ItemClickEventArgs e)
{
Debug.WriteLine("Clicked item");
ListView list = sender as ListView;
ListViewItem listItem = list.ContainerFromItem(e.ClickedItem) as ListViewItem;
listItem.IsSelected = !listItem.IsSelected;
}
private void myList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Debug.WriteLine($"Selection changed -> added = {e.AddedItems.Count}, removed = {e.RemovedItems.Count}, currently selected = {myList.SelectedItems.Count}");
}
上面的代码在 W8.1 上运行得很好,但是在 W10 上我遇到了问题。选择第一个项目可以,也可以更改它,但我无法取消选择一个项目 - listview 似乎(来自调试输出)取消选择项目,然后立即再次选择它 - 你可以看到 SelectionChanged 事件触发了两次.这是示例调试输出:
有人知道发生了什么吗?这种情况下如何取消选中该项?
【问题讨论】:
标签: c# listview windows-10 uwp windows-10-mobile