如何获取 uwp 树视图的拖放节点?

How do I get the dropped on node of a uwp treeview?

我的 TreeViewList 控件具有以下 _OnDragItemsCompleted 事件

我想知道如何获取掉落的节点。 还是我使用了错误的事件?

  private void ListControl_OnDragItemsCompleted(ListViewBase sender, DragItemsCompletedEventArgs args)
  {

      var obj = args.Items.FirstOrDefault();  // just get the first for now
      var tvn = obj as TreeViewNode;
      var item = tvn.Content as StackPanel;
      var dep = item.DataContext as Department;

      if (args.DropResult == DataPackageOperation.Move)
      {
          // how do I get the dropped on?
      }

  }

目前,树视图之间的拖放是预览。如果你想获得 DragItems,你可以在 TreeViewControlTemplate 中为 TreeViewList 添加 DragItemsCompleted 事件处理程序。

<Page.Resources>
    <Style TargetType="TreeView">
        <Setter Property="IsTabStop" Value="False" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="TreeView">
                    <TreeViewList x:Name="ListControl"
                                  ItemTemplate="{StaticResource TreeViewItemDataTemplate}"
                                  ItemContainerStyle="{StaticResource TreeViewItemStyle}"
                                  CanDragItems="True"
                                  AllowDrop="True"
                                  DragItemsCompleted="ListControl_DragItemsCompleted"
                                  CanReorderItems="True">
                        <TreeViewList.ItemContainerTransitions>
                            <TransitionCollection>
                                <ContentThemeTransition />
                                <ReorderThemeTransition />
                                <EntranceThemeTransition IsStaggeringEnabled="False" />
                            </TransitionCollection>
                        </TreeViewList.ItemContainerTransitions>
                    </TreeViewList>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Page.Resources>

代码隐藏

private void ListControl_DragItemsCompleted(ListViewBase sender, DragItemsCompletedEventArgs args)
{
    foreach (var item in args.Items)
    {
        var tem = item as TreeViewNode;
        var parent = tem.Parent;
    }
}