2012-02-03 37 views
2

這是我的第一篇文章。請原諒我,如果我寫一些不適合英寸從選定的孩子獲取父標題

我使用樹形視圖,並希望從選定的孩子,當我doubleclick孩子獲得父母的標題。一切都在後面的代碼中完成。這樣的事情:

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

當我doubleclick Child1,我想Parent1的頭。這可能在一些如何?

+0

您正在使用的WinForm或ASP? – Arion 2012-02-03 07:58:13

+0

如果這有助於我使用.Net Framework 4 – 2012-02-03 08:03:07

回答

0

給你的TreeView一個名字。您可以使用元素像這樣在你的孩子結合:

{Binding ElementName=myTreeView, Path=Header} 

或者你可以找到這樣的家長:

{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type namespace:TreeView}}, Path=Header, Mode=TwoWay} 
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

由於GetType()_獲取當前實例的類型,我將使用'if(child.Parent是TreeViewItem)'而不是GetType()。 (從Object繼承。)_ – 2012-07-09 20:53:54