我有一个TreeView
,它是导航WPF应用程序的主要方式。
当用户选择TreeView
中的新项目时,如果他们要离开的页面有未保存的信息,我们就有机会取消移动以继续处理当前数据/保存它。这当前发生在PreviewMouseDown
事件处理程序中。
然而,似乎抛出一个提供yes / no / cancel选项的对话框可以防止SelectedItemChanged
事件实际触发,我假设因为发生了另一次鼠标点击。因此,如果他们拒绝选择留在当前页面,它仍然没有改变。
有没有办法从PreviewMouseDown
内重新启动该事件,以便仍然可以调用SelectedItemChanged
事件?
答案 0 :(得分:1)
有没有办法从PreviewMouseDown中重新触发事件,以便仍然调用SelectedItemChanged事件?
手动调用事件处理程序就像调用方法一样容易。或者更好的是,将事件处理程序中的代码分解为从PreviewMouseDown
处理程序和SelectedItemChanged
处理程序调用的独立方法。
另一种选择是更改SelectedItem
或IsSelected
属性,以便事件再次触发。