我正在尝试为绑定(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/