当MessageBox出现时,Wpf停止路由事件?

yos*_*rel 5 wpf routedevents

PreviewMouseDown在TreeView上发生了一个事件,以确定用户是否可以根据某些逻辑选择其他项目.如果当前项目数据发生更改,将显示MessageBox,询问用户是否要放弃更改.如果用户按YES,我设置e.Handled = false;为启用新选择.如果用户按NO,我设置e.Handled = true;取消新选择.

问题是虽然我设置了e.Handled = false,但事件停止并且TreeView上没有选择事件.有人有解决方案吗?

提前致谢!

Ric*_*key 3

消息框的焦点更改会取消鼠标按下事件,因此是否处理该事件并不重要。由于您在显示消息框之前知道用户尝试选择哪个项目,因此如果用户按“是”,则只需以编程方式选择该项目即可。