Получить родительский заголовок от выбранного потомка - PullRequest
2 голосов
/ 03 февраля 2012

Это мой первый пост.Пожалуйста, прости меня, если я напишу что-то, что не подходит.

Я использую древовидную структуру и хочу получить заголовок родителя от выбранного дочернего элемента, когда я дважды щелкаю дочерний элемент.Все сделано в коде позади.Примерно так:

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

Когда я дважды щелкаю Child1, я хочу заголовок Parent1.Возможно ли это как-то?

Ответы [ 2 ]

2 голосов
/ 05 февраля 2012

Вы могли бы сделать что-то вроде этого.

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>
0 голосов
/ 03 февраля 2012

Дайте вашему TreeView имя.Вы можете использовать привязку элемента у вашего ребенка следующим образом:

{Binding ElementName=myTreeView, Path=Header}

Или вы можете найти родителя следующим образом:

{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type namespace:TreeView}}, Path=Header, Mode=TwoWay}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...