我正在通过XmlDataProvider填充TreeView,并且已经实现了拖放功能,因此我可以移动节点,并从其他位置删除节点。
但我只实施了最简单的形式;当你丢弃它时,它作为一个孩子插入到它被丢弃的节点上。此功能按预期工作。但是我也希望能够在两个节点之间删除一个项目,这样它就变成了一个兄弟节点。
我该如何解决这个问题?
目前我正在使用带有StackPanel的HierarchicalDataTemplate:
<HierarchicalDataTemplate x:Key="XmlTreeTemplate">
<HierarchicalDataTemplate.ItemsSource>
<Binding XPath="child::node()" />
</HierarchicalDataTemplate.ItemsSource>
<StackPanel
AllowDrop="True"
DragEnter="StackPanelDragEnter"
DragLeave="StackPanelDragLeave"
DragOver="StackPanelDragOver"
...
Drop事件在TreeView上。