Как запретить «пузырьковый» выбор в WPF TreeView? - PullRequest
0 голосов
/ 26 января 2011

У меня есть иерархический объект TreeView с некоторой структурой:

  • Основной уровень
    • второй уровень 1
    • второй уровень 3
    • второй уровень 2

Проблема в том, что при выборе элемента на втором уровне запускается событие «выбрано» для элемента основного уровня.Как я могу это отрицать?Я пытаюсь использовать некоторые трюки с логическим флагом и исходным свойством источника, но мне это не удалось.e.Handled = true также не дают мне результата.

Спасибо за любые советы и извините за мой плохой английский!

Ответы [ 2 ]

0 голосов
/ 26 января 2011

Проблема была в какой-то странной ошибке в моем коде. Когда я использую заставку в моем приложении, происходит событие для основного уровня. Когда я отключаю заставку - он отлично работает с e.Handled = true; обмануть.

Итак, я вызываю второй экран-заставку в конце элемента, выбранного обработчиком evend в течение 0 мс, и он работает.

Спасибо всем.

0 голосов
/ 26 января 2011

События, добавленные с использованием AddHandler, игнорируют флаг e.Handled, что, вероятно, соответствует вашему случаю.Можете ли вы проверить, равен ли Source события OriginalSource и, если это так, выйти из обработчика?

...