Как я могу сказать, когда UWP TreeView был изменен путем перетаскивания пользователя - PullRequest
0 голосов
/ 27 июня 2018

У меня есть UWP TreeView, который пользователи могут редактировать. Мне нужно сохранять любые изменения, которые они вносят. Я управляю добавлениями и удалениями, так что это не проблема. Но пользователи могут перетаскивать TreeViewNodes, чтобы изменить структуру дерева.

Существуют ли события, которые позволили бы мне узнать об изменениях, сделанных таким образом.

Я безуспешно пробовал различные события Drag and Drop.

1 Ответ

0 голосов
/ 28 июня 2018

Существуют ли события, которые позволили бы мне узнать об изменениях, сделанных таким образом.

Операция перетаскивания TreeViewNode может быть обнаружена с помощью DragItems относительных событий, например, DragItemsStarting и DragItemsCompleted. И эти события должны быть подписаны на TreeViewList, который вы можете найти в стиле по умолчанию TreeView. Например:

<TreeView >
    <TreeView.Style>
        <Style TargetType="TreeView"> 
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="TreeView">
                        <TreeViewList x:Name="ListControl" AllowDrop="True" DragItemsStarting="ListControl_DragItemsStarting" CanReorderItems="True" CanDragItems="True" ItemContainerStyle="{StaticResource TreeViewItemStyle}" ItemTemplate="{StaticResource TreeViewItemDataTemplate}">
                            <TreeViewList.ItemContainerTransitions>
                                <TransitionCollection>
                                    <ContentThemeTransition/>
                                    <ReorderThemeTransition/>
                                    <EntranceThemeTransition IsStaggeringEnabled="False"/>
                                </TransitionCollection>
                            </TreeViewList.ItemContainerTransitions>
                        </TreeViewList>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </TreeView.Style> 
    <TreeView.RootNodes>
        <TreeViewNode Content="Flavors" IsExpanded="True" >
            <TreeViewNode.Children>
                <TreeViewNode Content="Vanilla"/>
                <TreeViewNode Content="Strawberry"/>
                <TreeViewNode Content="Chocolate"/>
            </TreeViewNode.Children>
        </TreeViewNode>
    </TreeView.RootNodes>
</TreeView>

 private void ListControl_DragItemsStarting(object sender, DragItemsStartingEventArgs e)
 {

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...