从所选子项获取父标题

时间:2012-02-03 07:48:31

标签: c# wpf treeview

这是我的第一篇文章。如果我写的东西不合适,请原谅我。

我正在使用树视图,并且当我双击该子项时,想要从所选子项中获取父项的标题。一切都在后面的代码中完成。像这样:

Parent1
   ---> Child1
   ---> Child2
Parent2
   ---> Child3
   ---> Child4

当我双击Child1时,我想要Parent1的标题。这有可能在某些方面吗?

2 个答案:

答案 0 :(得分:2)

你可以这样做。

private void treeView1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        TreeView tv = (TreeView)sender;

        TreeViewItem child = (TreeViewItem)tv.SelectedItem;
        if (child.Parent.GetType() == typeof(TreeViewItem)) // verify that parent is TreeViewItem
        {
            TreeViewItem parent =(TreeViewItem)child.Parent; 
            string text = parent.Header.ToString();
        }

    }
<TreeView Height="92" HorizontalAlignment="Left" Margin="10,10,0,0" Name="treeView1"    VerticalAlignment="Top" Width="120" MouseDoubleClick="treeView1_MouseDoubleClick">
    <TreeViewItem Header="Header1">
        <TreeViewItem Header="Child1" />
        <TreeViewItem Header="Child2" />
    </TreeViewItem>
    <TreeViewItem Header="Header2">
        <TreeViewItem Header="Child3" />
        <TreeViewItem Header="Child4" />
    </TreeViewItem>
</TreeView>

答案 1 :(得分:0)

为您的TreeView命名。您可以在您的孩子中使用元素绑定,如下所示:

{Binding ElementName=myTreeView, Path=Header}

或者您可以找到这样的父母:

{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type namespace:TreeView}}, Path=Header, Mode=TwoWay}