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

WPF;单击我的ListView中的空白区域时如何取消选择所有我选择的项目,wpf,listview,Wpf,Listview,当我有多个(甚至一个)所选项目时,我想取消选择所有所选项目,然后在我的列表视图中的空白处按simple单击(空白=非行) 这是我的“取消选择所有项目”功能: private void DeselectAllListViewItems() { MyListView.SelectedItems.Clear(); } private void MyListView_MouseDown(object sender, MouseButtonEventArgs e) { if (MyLi

当我有多个(甚至一个)
所选项目时,我想取消选择所有所选项目,然后在我的
列表视图中的空白处按simple
单击
(空白=非行)

这是我的“取消选择所有项目”功能:

private void DeselectAllListViewItems()
{
    MyListView.SelectedItems.Clear();
} 
private void MyListView_MouseDown(object sender, MouseButtonEventArgs e)
{
    if (MyListView.SelectedIndex == -1)
        DeselectAllListViewItems();
}
我尝试使用此函数获取所选索引:

private void DeselectAllListViewItems()
{
    MyListView.SelectedItems.Clear();
} 
private void MyListView_MouseDown(object sender, MouseButtonEventArgs e)
{
    if (MyListView.SelectedIndex == -1)
        DeselectAllListViewItems();
}
但如果我有几个选定的项目(或一个…),选定的索引将永远不会是-1。
那么,我如何区分我的
鼠标单击
是在空白处,而不是在项目行上呢?

下面的代码运行得很好

private void MyListView_MouseDown(object sender, MouseButtonEventArgs e)
{
    HitTestResult r = VisualTreeHelper.HitTest(this, e.GetPosition(this));
    if (r.VisualHit.GetType() != typeof(ListBoxItem))
        listView1.UnselectAll();
}

这可能重复回答您的问题吗?