我有一个带有几个项目的ListView,所以每当我选择一个特定的项目时,都会发生相应的事件。此外,我还想在用户单击以清空ListView中的空格(没有项目)时创建一些事件。但是,我试图为ListView创建MouseClick和SelectionChanged,它仍然无法检测鼠标点击外部项目。
答案 0 :(得分:0)
您可以捕获MouseDown事件 - 它适用于外部空间
答案 1 :(得分:0)
这可能有点超出了你的设计范围,但这是一种在MVVM设计中很容易做到的事情。无需担心用户是否单击了ListView中的项目或任何其他非项目空间,您只需将OneWayToSource或TwoWay绑定属性到ListView的SelectedItem即可。然后,只要设置了该值,就可以在属性的setter字段中执行所需的任何代码。
在您的XAML中:
<ListView SelectedItem="{Binding YourSelectedItem Mode=OneWayToSource}"></ListView>
然后在ViewModel中作为ListView的DataContext:
private object yourSelectedItem = new object();
public object YourSelectedItem
{
get { return yourSelectedItem; }
set
{
yourSelectedItem = value;
CorrespondingEvent();
}
}