WPF TreeView перетащить с помощью предварительного просмотра - PullRequest
1 голос
/ 05 июня 2010

Я обрабатываю события перетаскивания в TreeView, используя PreviewMouseDown, PreviewMouseMove и PreviewMouseUp, однако есть проблема.

В моем обработчике PreviewMouseDown я настроил все на случай, если началось перетаскивание (обнаружено в событии Move), однако я установил e.Handled = true. Это означает, что стандартные события выбора не генерируются на моем дереве!

То, что я хочу сделать в своем событии Up, - это вызвать стандартное событие изменения выбора древовидной структуры, за исключением того, что я не могу вызывать события вне дерева. Итак, как правильно это сделать?

Я пытался использовать стандартные события MouseDown, MouseMove и MouseUp, однако есть проблема с ошибкой в ​​функции множественного выбора, которая означает, что мне нужно использовать предварительную версию этих событий.

1 Ответ

1 голос
/ 07 июня 2010

Мое решение - не использовать обработчики Preview, вместо этого я использую MouseDown, MouseMove и MouseUp.

Последовательность событий:

* MouseDown (set up for possible drag)
* SelectionChanged (remember any selection change)
* MouseMove (here we might go into a drag operation)
* MouseUp (if we went into a drag operation, all done, otherwise process the multiple selection stuff)
...