Позволить родительскому элементу обрабатывать событие дочернего элемента управления или команду WPF? - PullRequest
1 голос
/ 03 августа 2010

У меня есть пользовательский элемент управления, в котором есть 2 элемента управления A и B. Теперь у A и B своя логика в событии DragDrop.

Родитель, имеющий эти 2 элемента управления, должен обрабатывать DragDrop из этих событий по-своему. Так что у меня в родительском что-то вроде, parent.A.DragDropEvent + = new EventHandler () и т.д ...

Теперь я хочу обработать событие DragDrop обоих элементов управления в родительском элементе и НЕ позволять детям обрабатывать его самостоятельно. С другой стороны, если эти элементы управления используются автономно (не в родительском элементе управления), я хочу, чтобы их собственная логика работала или вступала во владение.

Как мне этого добиться? спасибо!

Ответы [ 2 ]

3 голосов
/ 03 августа 2010

Добавьте логическое свойство, такое как HandleDragDrop, к своим дочерним элементам управления, и пусть они обрабатывают перетаскивание, только если это свойство имеет значение true. Сделайте это по умолчанию. Установите значение false в родительском контроле.

2 голосов
/ 03 августа 2010

Если вы не хотите, чтобы дочерние элементы управления отображались, но не были интерактивными в реализации, где у них есть родитель, вы можете установить IsHitTestVisible = "false" для них в xaml, где у них есть родитель, и тогда все взаимодействия будут выполняться. родителю.

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