当我有几个(甚至一个)selected items
并且我在click
(空格=非行)中的空白区域按简单ListView
时,我想取消选中我选中的所有内容项目
这是我取消选择所有项目功能:
private void DeselectAllListViewItems()
{
MyListView.SelectedItems.Clear();
}
我尝试使用此函数获取所选索引:
private void MyListView_MouseDown(object sender, MouseButtonEventArgs e)
{
if (MyListView.SelectedIndex == -1)
DeselectAllListViewItems();
}
但是如果我有几个选定的项目(或一个..),则所选索引将永远不会为-1。
那么我如何区分我的mouse click
是空的空间而不是项目行?
答案 0 :(得分:8)
以下代码效果很好。
private void MyListView_MouseDown(object sender, MouseButtonEventArgs e)
{
HitTestResult r = VisualTreeHelper.HitTest(this, e.GetPosition(this));
if (r.VisualHit.GetType() != typeof(ListBoxItem))
listView1.UnselectAll();
}