如何检测列表视图项目外的鼠标点击

本文关键字:项目 鼠标 视图 列表 何检测 检测 | 更新日期: 2023-09-27 18:28:26

我有一个ListView,其中包含一些项,所以每当我选择特定项时,都会发生相应的事件。此外,我还想在用户单击ListView中的空白(没有项目)时创建一些事件。然而,我已经尝试为ListView创建MouseClick和SelectionChanged,它仍然无法检测项目外部的鼠标点击。

如何检测列表视图项目外的鼠标点击

这可能有点超出了您的设计范围,但这在MVVM设计中非常容易做到。不必担心用户是否单击了某个项目,或者ListView中的任何其他非项目空间,只需OneWayToSource或TwoWay即可将属性绑定到ListView的SelectedItem。然后,无论何时设置该值,都可以在属性的setter字段中执行所需的任何代码。

在XAML中:

<ListView SelectedItem="{Binding YourSelectedItem Mode=OneWayToSource}"></ListView>

然后在作为ListView的DataContext的ViewModel中:

private object yourSelectedItem = new object();
public object YourSelectedItem
{
    get { return yourSelectedItem; }
    set
    {
         yourSelectedItem = value;
         CorrespondingEvent();
    }
}

您可以捕获MouseDown事件-它适用于外部空间