Wpf 如何更好地处理鼠标点击?
我在wpf中嵌套了Wpf 如何更好地处理鼠标点击?,wpf,listview,event-handling,mouseevent,Wpf,Listview,Event Handling,Mouseevent,我在wpf中嵌套了ListView。用户可以双击列表项并打开项目文档。 因此,我有ListView1\u MouseDoubleClick和子listview2listview2\u MouseDoubleClick 但是,当用户双击listview2项目时,listview1也会收到MouseDoubleClick事件 所以。。。据我所知,要解决此问题,有两种解决方案: A) 添加bool标志并设置为false code: Listview2_mousedoubleclick() {
ListView
。用户可以双击列表项并打开项目文档。
因此,我有ListView1\u MouseDoubleClick
和子listview2listview2\u MouseDoubleClick
但是,当用户双击listview2项目时,listview1也会收到MouseDoubleClick
事件
所以。。。据我所知,要解决此问题,有两种解决方案:
A) 添加bool标志并设置为false
code:
Listview2_mousedoubleclick()
{
flag=true;
}
ListView1_mousedoubleclick()
{
if (flag==true) { flag=false;return}
}
B) 使用VisualTreeHelper
并分析e.Source
,找出应该响应的选项
问题:哪种方式更好?我想您看到了一个路由事件在这里的控制树上冒泡。在处理事件时,可以在事件本身中设置
Handled
属性,以阻止它进一步冒泡。我现在不知道确切的细节,因为我的WPF知识有点生疏,但有一种方法可以在您控制的某个点停止这样的事件处理链。是的!我只是想停止事件处理链。我已经试过了;但是ListView1仍然能够接收鼠标单击事件//REF:private void ListView2_MouseDoubleClick(对象发送器,MouseButtonEventArgs e)