我一直在尝试让我的WPF应用程序在用户使用TreeView导航时提示他们要么放弃未保存的更改,要么取消操作。
以下是需要翻译的内容:
以下是需要翻译的内容:
我认为我发现了一个错误。MessageBox与PreviewMouseDown不兼容。如果有MessageBox显示,它似乎会“处理”单击,而不管如何设置e.Handled。
对于此XAML...
<TreeView Name="TreeViewThings"
...
PreviewMouseDown="TreeViewThings_PreviewMouseDown"
TreeViewItem.Expanded="TreeViewThings_Expanded"
TreeViewItem.Selected="TreeViewThings_Selected" >
...比较这些替代方法...
Sub TreeViewNodes_PreviewMouseDown(...) e.Handled = False End Sub
Sub TreeViewNodes_PreviewMouseDown(...) MessageBox.Show("测试", "测试", MessageBoxButton.OK) e.Handled = False End Sub
这两种方法的行为不同。没有消息框时,TreeViewNodes_Selected()
或者 TreeViewThings_Expanded()
将会执行。有了消息框,它们就不会执行。
这是一个错误还是有什么我应该理解的问题?