Drag & Drop из проводника в TreeView

351
03 ноября 2017, 08:14

Есть иерархическая структура TreeView с TreeViewItem, для каждого TreeViewItem нужно разрешить перетаскивание файла из проводника и сохранять ссылку на этот файл (полный путь до файла).

В TreeView установил свойство AllowDrop = true, таким образом разрешил перетаскивание объектов в него.

Для каждого TreeViewItem привязал обработчик Drop, в котором осуществляю привязку объекта в узлу дерева.

Не понимаю, как сделать обработчик и у кого его делать необходимо, чтобы курсор мыши менялся в зависимости от того, какой файл сейчас кидают на ветку дерева?

Например, нужно разрешить привязку файлов только с расширением .txt, остальные файлы запретить.

Пытался сделать для TreeViewItem через событие PreviewDropEnter проверку, и если файл имел другое расширение, устанавливал e.Effect = DragDropEffects.None. Но курсор все равно не изменялся на запрет, оставался внешним видом похожим на DragDropEffects.Move

Как-то не так делаю обработку?

PS: TreeViewItem объект состоит из StackPanel внутри которого вложено пару textblock и image. В поведении проглядывается, что где-то между элементами курсор меняется на другой. Это получается нужно каждому вложенному элементу treeviewitem обработчики присвоить?

READ ALSO
Как повторить структуру папки?

Как повторить структуру папки?

Есть папка и ее полный путь "С:\Temp"В данной папке есть вложенные папки и уровень вложений не известен

237
Как дождаться завершения привязки к DependencyProperty

Как дождаться завершения привязки к DependencyProperty

Делаю браузер на основе CefSharp по примеру из исходников

194
Как создать адаптивниый дизайн в Unity3D

Как создать адаптивниый дизайн в Unity3D

Нужно настройти меню под 2 режима смартфона landscape и portrait, вот примерно что должно получиться

214
Forex api в .Net

Forex api в .Net

Добрый день, для практики программирования решил поработать с какой-нибудь торговой платформой, может кто-нибудь может посоветовать апи...

239