Обработанное событие TreeView.SelectedItemChanged все еще пузырится

У меня TreeView привязан к иерархии, состоящей из нескольких разных классов через HierarchicalDataTemplate s. Когда элемент в дереве выбран, событие SelectedItemChanged , конечно же, успешно всплывает вверх через родительские элементы, как и должно. То, что он не должен делать, но продолжает делать, продолжает расти после того, как я установил для e.Handled значение true .

Событие все равно будет срабатывать на родительском элементе, и RoutedPropertyChangedEventArgs будет выглядеть точно так же, как был выбран родительский элемент; даже свойство OriginalSource будет указывать на родительский элемент, а не на тот, который был выбран изначально. e.Handled , конечно, будет ложным .

Примерно такой же вопрос был задан здесь , но я не использую EventAggregator или клиентские лицензии, и обходной путь, найденный здесь , не очень помогает, потому что я специально не нахожусь после события мыши.

Есть ли способ точно получить фактически выбранный элемент или принудительно остановить бурлящее безумие ( не прибегая к очень жестокому и неэтичному взлому с использованием глобальных переменных, о которых я могу думать)?

Спасибо за любые идеи.

6
задан Community 23 May 2017 в 10:31
поделиться