我有一个TreeView,它是导航WPF应用程序的主要方式。
当用户在TreeView中选择一个新项目时,如果他们要离开的页面有未保存的信息,我们提供了取消移动以继续处理当前数据/保存它的机会。这种情况目前发生在PreviewMouseDown事件处理程序中。
但是,似乎在这里抛出一个对话框提供了yes/no/cancel选项,从而阻止了SelectedItemChanged事件的实际触发,我认为这是因为发生了另一个鼠标单击。因此,如果他们拒绝在当前页面上保留的选项,它仍然没有改变。
是否有任何方法从PreviewMouseDown内部重新启动事件,以便SelectedItemChanged事件仍然被调用?
发布于 2017-09-11 14:23:09
是否有任何方法从PreviewMouseDown内部重新启动事件,以便SelectedItemChanged事件仍然被调用?
手动调用事件处理程序将更容易,就像调用方法一样。或者更好的是,将事件处理程序中的代码分解为您从PreviewMouseDown处理程序和SelectedItemChanged处理程序调用的独立方法。
另一个选项是更改SelectedItem或IsSelected属性,以便事件再次触发。
https://stackoverflow.com/questions/46157759
复制相似问题