Какова лучшая стратегия для реализации перетаскивания элементов внутри существующего элемента управления WPF TreeView? Это должен быть MVVM, и он должен иметь предварительный просмотр элемента, который перетаскивается из одной позиции в другую.
Посмотрел некоторые решения. Если я использую Canvas, я могу реализовать практически все что угодно, но тогда мне нужно будет начать управление с нуля, что выглядит как переизобретение колеса, учитывая, что мне нужна существующая функциональность TreeView. Пробовал и PopUp и Thumb, но я запутался, как правильно их использовать для реализации этой функциональности. Кроме того, имеет смысл, что я могу использовать PreviewMouseOver для объектов выше целевого TreeViewItems; Я должен быть в состоянии отменить действие удаления в зависимости от определенных правил, например, я не могу бросить автомобильный объект на категорию животных.
Я проверил некоторые коммерческие решения, и в них уже есть аналогичные функциональные возможности; но мне было интересно, есть ли какое-нибудь бесплатное или открытое решение тоже? Или хотя бы узнать, как они достигли этой функциональности в коммерческих библиотеках?