2011-01-26 2 views
0

У меня есть иерархический объект TreeView с некоторой структурой:Как отказаться от выбора «пузыря» в WPF TreeView?

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

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

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

+0

, пожалуйста, разместите соответствующий XAML и, если возможно, код-как все. – Nawaz

+0

Я нахожу ошибку. Событие основного уровня срабатывает, когда я использую загрузку splashscreen в другом потоке gui (он запустил другое окно в ручном положении). Когда я комментирую вызов spashscreen, это стало нормальным :(. – Dmitriy

ответ

0

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

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

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

0

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

Смежные вопросы