Как я могу получить на узле дерева просмотра UWP? - PullRequest
0 голосов
/ 20 октября 2018

У моего элемента управления 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?
      }

  }

1 Ответ

0 голосов
/ 22 октября 2018

В настоящее время перетаскивание между видами дерева является предварительным просмотром.если вы хотите получить DragItems, вы можете добавить DragItemsCompleted обработчик событий для TreeViewList в ControlTemplate из TreeView.

<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;
    }
}
...