Вложенные триггеры в WPF - PullRequest
1 голос
/ 10 марта 2011

Я разрабатываю приложение, которое использует значительное количество вложенных элементов управления.Не вдаваясь в слишком много (ненужных) деталей, основная идея заключается в том, что у меня есть ListView, где каждый ListItem может содержать один или несколько ListViews, и это может повторяться бесконечно (ListView внутри ListView).

Я установил триггер DragEnter / DragLeave для каждого ListView, чтобы при входе курсора в область фон изменялся.Проблема в том, что из-за вложенности триггер срабатывает на каждом отдельном ListView в иерархии, что не то, что я хочу - я бы хотел, чтобы только ListView находился непосредственно под курсором для анимации.Есть ли простой способ предотвратить распространение триггера на вложенных элементах управления?

1 Ответ

1 голос
/ 11 марта 2011

Вам нужно будет предотвратить всплытие этих событий во внешний ListView, тем самым предотвращая срабатывание триггеров.

Возможно, вам потребуется использовать пользовательский класс, производный от ListView (например, MyListView), переопределить OnDragEnter / OnDragLeave и установить для e.Handled значение true.

Вы также можете использовать обработчик класса для типа ListView, где вы снова установите для e.Handled значение true. Это может произойти до события EventTrigger, что эффективно предотвратит срабатывание вашего триггера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...