Поставили мне недавно задачку: реализовать перетаскивание элементов дерева в программе, которую наша компания разрабатывает. В документации написано, что для TreeListView есть для этого специальное свойство:
AllowDragDrop="True"
Но данное свойство появилось в 17.2, а на работе используется 17.1( Но горевать некогда, надо работать.
Добавляем в TreeListControl:
<dxmvvm:Interaction.Behaviors>
<dxg:TreeListDragDropManager AllowDrag="True" AllowDrop="True">
<dxmvvm:Interaction.Behaviors>
<dxmvvm:EventToCommand EventName="Drop" Command={Binding CommandNodeDrop}" PassEventArgsToCommand="True" />
</dxmvvm:Interaction.Behaviors>
</dxg:TreeListDragDropManager>
</dxmvvm:Interaction.Behaviors>
Так используется MVVM, с помощью dxmvvm:EventToCommand привязываем события к командам. И теперь в модели представления реализуем команду CommandNodeDrop. Например: