C# 如何检测listview项目外部的鼠标单击?

C# 如何检测listview项目外部的鼠标单击?,c#,winforms,c#-4.0,C#,Winforms,C# 4.0,我有一个包含几个项目的ListView,因此每当我选择一个特定的项目时,就会发生一个相应的事件。此外,我还想在用户单击以清空ListView中的空间(其中没有项目)时创建一些事件。但是,我已经尝试为ListView创建MouseClick和SelectionChanged,它仍然无法检测到项目外部的鼠标单击。您可以捕获MouseDown事件-它适用于外部空间。这可能有点超出了您的设计范围,但在MVVM设计中,这是一种非常容易做到的事情。您不必担心用户是否单击了某个项或ListView中的任何其他

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

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

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

在您的XAML中:

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

WPF还是表格?使用标签。为什么需要检测项目外部的鼠标点击?您在上面说过,您希望在单击ListViewItem时触发事件,对吗?@furkle,因为我希望当用户在listview之外单击时,我重置一些标志。
private object yourSelectedItem = new object();
public object YourSelectedItem
{
    get { return yourSelectedItem; }
    set
    {
         yourSelectedItem = value;
         CorrespondingEvent();
    }
}