2010-11-30 11 views
0

J'essaie de créer une structure d'enfant parent inférieure à l'aide de l'arborescence WPF.Insertion d'un enfant parent dans l'arborescence WPF:

Tree 

->Parent 

    ->Child 

     ->Grand Child. 

J'ai écrit le code ci-dessous qui n'est pas capable d'insérer pour enfant. Aidez-moi s'il vous plaît à résoudre ce problème.

<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 
      { 
        ///// 
      } 
     } 

Répondre

1

Votre problème est que chaque fois que vous développez un nœud, le nœud enfant pour le nœud que vous développez est toujours « Parent »

Im ne sais pas exactement ce que vous essayez de réaliser, mais voici un code:

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

EDIT - ceci est pour des noms spécifiques dans la hiérarchie

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

Salut doyen: Quand je clique sur mon arbre il devrait s'ouvrir avec Parent et quand je clique sur Parent il devrait s'ouvrir avec l'enfant et ainsi de suite .... Je veux au-dessous de la structure d'arbre Arbre ---> Parent ----> Enfant -----> GrandChild – vrbilgi

+0

Ajout d'une logique pour le réglage de l'en-tête –