Я работаю с функцией перетаскивания в приложении WPF.
У меня есть такая древовидная структура.
StackPanel
- Border 1
- Grid A
- Grid 1
- Grid 2
- Border 2
- Grid B
- Grid 1
- Grid 2
Это моя попытка показать древовидное представление элементов UIE в моем приложении WPF.
так что панель стека содержит сетки с вложенными сетками внутри. Они определяются динамически в коде, а не в XAML.
У меня есть внутренние сетки (1 и 2), обрабатывающие события перетаскивания. Проблема, с которой я сталкиваюсь, заключается в том, что когда выполняется операция удаления, и она отбрасывается на границе одной из сеток, она падает и попадает на панель StackPanel. То, что я хотел бы сделать, - это когда элемент сбрасывается на границе, я бы хотел, чтобы он перебрасывался на тот же обработчик события отбрасывания.
Я довольно новичок в идее маршрутизируемых событий, а также событий Bubbling и Tunneling. Я знаю, что мне нужно это событие, чтобы пройти по иерархии элементов, что заставляет меня поверить, что я нуждаюсь в «Туннельном» событии. Означает ли это, что я должен прикрепить границу к обработчику событий. Прямо сейчас у меня есть следующий код для гридов, которые будут подписаны на событие.
fieldItemGrid.PreviewDrop += Grid_Drop;
private void Grid_Drop(object sender,DragEventArgs e)
{
//React to Drop Event Here
}
Могу ли я сделать что-то попроще, чем переписать код, который идет здесь, в событии Border_Drop?
Спасибо заранее.