WPF;如何在ListView中单击空白区域时取消选择所有选定的项目

时间:2015-06-09 15:55:30

标签: wpf listview

当我有几个(甚至一个)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是空的空间而不是项目行?

1 个答案:

答案 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();
}

WPF Listbox remove selection by clicking on a blank spot