c# - 如何找到与 TreeViewItem 关联的底层元素

标签 c# wpf mvvm treeview

我正在尝试为绑定(bind)到自定义元素的 TreeView 控件实现拖放:

<TreeView ItemsSource="{Binding FirstGeneration}">
  <TreeView.Resources>
     <HierarchicalDataTemplate DataType="{x:Type NavigationTreeElement}" 
                               ItemsSource="{Binding Children}">
       <StackPanel Orientation="Horizontal" Margin="1">
          <Image Source="open-16x16.png" />
          <TextBlock Text="{Binding Path=DisplayName}" />
       </StackPanel>
     </HierarchicalDataTemplate>
  </TreeView.Resources>
</TreeView>

使用基础类:
 public class NavigationElement
 {
     public string DisplayName { get; set; }
     public ObservableCollection<NavigationElement> Children { get; set; }
 }

我在将呈现的 TreeViewItem 与底层 NavigationElement 关联时遇到问题。如果我找到鼠标悬停的 TreeViewItem,如下所示:
    private static TreeViewItem GetNearestContainer(UIElement element)
    {
        // Walk up the element tree to the nearest tree view item.
        var container = element as TreeViewItem;
        while ((container == null) && (element != null))
        {
            element = VisualTreeHelper.GetParent(element) as UIElement;
            container = element as TreeViewItem;
        }
        return container;
    }

如何将该 TreeViewItem 与基础 NavigationElement 关联?

最佳答案

我认为它在 container.Header ,看起来很奇怪。

关于c# - 如何找到与 TreeViewItem 关联的底层元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9898126/

相关文章:

c# - 如何处理 C# 控制台应用程序终止?

c# - ViewModel 在操作方法中获取空值

c# - 在 C# 控制台应用程序中使用线程概念并行执行超过 2 个 Dtsx 包

wpf - GAC 的 .NET 4.0 XBAP 安全问题

WPF 数据绑定(bind)、MVVM 和路由事件

c# - 列表框没有显示我的第一个项目

c# - 一次写入多个文本文件

c# - WPF Datagrid Double Click Cell MVVM设计

wpf - 如何使 WPF DataGrid 显示具有绑定(bind)和 DataTemplate 的 ViewModel 集合

c# - 当一个 viewModel 依赖于多个模型时如何访问数据