我了解在使用WPF的C#编程与传统的C#过程有所不同,因此大部分在线材料并未提到我需要的内容。
我在我的WPF窗口中有一个TreeView控件,其中包含父节点和子节点。我想将它们存储在一个类型为Node(id、name、parent)的列表中。
我使用以下代码获取选定项/节点的名称:
private void TreeViewItem_OnItemSelected(object sender, RoutedEventArgs e)
{
TreeViewItem item = treeView.SelectedItem as TreeViewItem;
nameTxt.Text = item.Header.ToString();
}
我尝试使用以下方法获取它之前的子节点的父节点:
And I tried getting the Parent of the child node immediately before it using this:
(T)TreeViewItem item = treeView.SelectedItem as TreeViewItem;
nameTxt.Text = item.Parent.ToString();
然而,这将返回根父级元素(A),而非该子元素的父级元素(即2)。
应该进行哪些更改以获取子元素的直接父级元素而不是根父级元素? :)
编辑:以下是 XAML 代码:
<TreeView Name="treeView" HorizontalAlignment="Left" Height="564" Margin="10,68,0,0" VerticalAlignment="Top" Width="363">
<TreeViewItem TreeViewItem.Selected="TreeViewItem_OnItemSelected" Header="A" IsExpanded="True" Height="554" FontSize="18">
<TreeViewItem Header="1" />
<TreeViewItem Header="2" />
</TreeViewItem>
</TreeView>
item.Parent
返回A
时,SelectedItem
是什么? - Sriram SakthivelA
,所以你得到的是A
。我也无法重现这个问题。发完整的代码来重现问题以获得帮助。顺便说一句,我建议你使用数据绑定而不是引用 这里。 - Sriram Sakthivel