如何处理mousedoublick点击更好的方式?

时间:2009-10-23 15:27:49

标签: wpf listview event-handling mouseevent

我在wpf中嵌套了ListView。用户可以双击列表项并打开项目文档。 所以,我有ListView1_MouseDoubleClick和子listview2 ListView2_MouseDoubleClick

但是,当用户双击listview2项时,listview1也会收到MouseDoubleClick事件。

所以...为了解决这个问题,据我所知有两种解决方案:

A)添加bool标志并设置为false

code:
Listview2_mousedoubleclick()
{
    flag=true;
}

ListView1_mousedoubleclick()
{
    if (flag==true) { flag=false;return}
}

B)使用VisualTreeHelper并分析e.Source以找出应该响应的内容......

问题:哪种方式更好?

1 个答案:

答案 0 :(得分:1)

我认为你在这里看到一个路由事件冒泡控制树。处理它时,您可以在事件本身中设置Handled属性,以防止它进一步冒泡。我现在不知道确切的具体细节,因为我的WPF知识有点生疏,但有一种方法可以在你控制的某个点停止这样的事件处理链。