我有一个TreeView绑定到一个层次结构,通过HierarchicalDataTemplates 包含几个不同的类.当选择树中的项目时,SelectedItemChanged事件当然会愉快地通过父项向上冒泡,就像它应该的那样.它应该有什么不能做的,但仍然没有,正高兴地保持在起泡后,我设置e.Handled到true.
该事件仍将在父项上触发,其RoutedPropertyChangedEventArgs外观与所选的父项完全相同; 甚至OriginalSource属性也将指向父项,而不是最初选择的项.e.Handled当然会false.
几乎同样的问题在这里被问到,但我没有使用EventAggregator或CAL,这里找到的解决方法没有多大帮助,因为我并不是专门针对鼠标事件.
有没有办法精确地获得实际选择的项目或强行停止冒泡的疯狂(不使用我能想到的全局变量的非常暴力和不道德的黑客)?
感谢您的任何见解.
如何确定在PreviewMouseDown事件中单击的TreeViewItem?