2010-11-30 3 views
0

Я пытаюсь создать ниже родительский дочерний structur, используя дерево WPF.WPF Tree Parent Child Insertion:

Tree 

->Parent 

    ->Child 

     ->Grand Child. 

Я написал ниже код, который не может быть вставлен для ребенка. Пожалуйста, помогите мне исправить это.

<Window x:Class="NewTree_DynamicNode.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <TreeView Name="treeFileSystem" TreeViewItem.Expanded="treeFileSystem_Expanded_1"> 
      <TreeViewItem Header="Categories" x:Name="_ImageTree" Tag="hi" 
        x:FieldModifier="private"> 
       <TreeViewItem TextBlock.FontStyle="Italic" 
        Header="Loading..." Name="treeFileSystem2"/> 
      </TreeViewItem> 
     </TreeView> 
    </Grid> 
</Window> 




private void treeFileSystem_Expanded_1(object sender, RoutedEventArgs e) 
     { 
      this._ImageTree = (TreeViewItem)e.OriginalSource; 
      this._ImageTree.Items.Clear(); 

      try 
      { 
       for(int i=0 ; i<2; i++) 
       { 
        TreeViewItem temp = new TreeViewItem(); 
        TreeViewItem temp1 = new TreeViewItem(); 
        temp.Header = "Parent"; 
        temp1.Header = "Child"; 
        temp.Items.Add(temp1);     
        this._ImageTree.Items.Add(temp);      
       } 
      } 
      catch 
      { 
        ///// 
      } 
     } 

ответ

1

Ваша проблема заключается в том, что каждый раз, когда вы расширяете узел, дочерний узел для узла, расширения всегда «Parent»

Я не уверен точно, что вы пытаетесь достичь, но Heres некоторые код:

TreeViewItem temp = new TreeViewItem(); 
temp.Header = "Child"; 
temp.Items.Add(null); 
this._ImageTree.Items.Add(temp); 

EDIT - это для конкретных имен в иерархии

TreeViewItem temp = new TreeViewItem(); 
var header = string.Empty; 
switch (_ImageTree.Header.ToString()) 
{ 
    case "Categories": 
     header = "Parent"; 
     break; 
    case "Parent": 
     header = "Child"; 
     break; 
    case "Child": 
     header = "GrandChild"; 
     break; 
    default: 
     header = "Child of " + _ImageTree.Header; 
     break; 
} 
temp.Header = header; 
temp.Items.Add(null); 
this._ImageTree.Items.Add(temp); 
+0

Привет, декан: Когда я нажимаю на свое дерево, он должен открываться с родителем, и когда я нажимаю на родителя, он должен открываться с дочерним элементом и т. Д. Я хочу, чтобы ниже древовидной структуры Дерево ---> Родитель ----> Ребенок -----> GrandChild – vrbilgi 2010-11-30 10:49:58