У меня есть древовидное представление, связанное с простыми узлами, каждая из которых содержит две строки (Expression, Exp2) и список узлов (Children).
Я также сделал так, чтобы при двойном щелчке по определенному текстовому полю возникало событие, которое дает мне 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
}
}