【发布时间】:2019-01-10 15:33:48
【问题描述】:
我有一个绑定到简单节点的树视图,每个节点都包含两个字符串(表达式、Exp2)和一个节点列表(子节点)。
我还这样做了,当双击特定的文本框时,它会引发一个事件,给我一个 TreeViewItem。
我如何从那里到达创建 TreeViewItem 的节点?
<TreeView x:Name="treeView" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="20,80,20,20">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:Node}"
ItemsSource="{Binding Children}">
<Grid>
<TextBlock Text="{Binding Expression}"/>
<!--<TextBlock Text="{Binding Exp2}"/>-->
</Grid>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="TreeViewItem_MouseDoubleClick"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if(sender is TreeViewItem)
{
if (!((TreeViewItem)sender).IsSelected)
{
return;
}
TreeViewItem item = (TreeViewItem)sender;
//???
//Profit
}
}
【问题讨论】:
-
你指的是节点的Parent节点吗?
-
您可以在 TreeViewItem 的
Tag属性中存储对 Node 的引用,但是您可以直接访问 TreeViewItem.DataContext 吗?