Bonjour à tous,

Je m'essaie à produire une Treeview à plusieurs niveaux qui aura cette forme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
- Niveau 1
    - Item 1
        - Parents
            - Item 2
            - Item 3
        - Enfants
            - Item 4
    + Item 2
+ Niveau 2
+ Niveau 3
Donc j'ai une Treeview qui prend en source une collection "Niveaux", qui est de la sorte

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
public class Niveau
{
     public int Id {get; set;}
     public string Name {get; set;}
     public List<Item> Items {get; set;}
}
 
public class Item
{
     public int Id {get; set;}
     public string Name {get; set;}
     public List<Item> Parents {get; set;}
     public List<Item> Enfants {get; set;}
}

Niveaux[0].Items[0].Parents (ou Enfants).

Donc j'ai écris un ItemTemplate avec plusieurs niveau de HierarchicalDataTemplate, dont voici le code :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
            <HierarchicalDataTemplate x:Key="ParentTemplate">
                <TreeViewItem >
                    <TextBlock Text="{Binding Path=Name}" />
                </TreeViewItem>
            </HierarchicalDataTemplate>
            <HierarchicalDataTemplate x:Key="ItemsTemplate" ItemTemplate="{StaticResource ParentTemplate}" ItemsSource="{Binding Path=Parents}" >    
                <TextBlock Text="{Binding Path=Name}" />
            </HierarchicalDataTemplate>
            <HierarchicalDataTemplate x:Key="NameTemplate" ItemsSource="{Binding Path=Items}" ItemTemplate="{StaticResource ItemsTemplate}">
                <TextBlock Text="{Binding Path=Name}" />
            </HierarchicalDataTemplate>
</DockPanel.Resources>
 
        <TreeView ItemsSource="{Binding Niveaux}" ItemTemplate="{StaticResource NameTemplate}" />
    </DockPanel>

Ce que je veux c'est insérer, un bloc Parent et un bloc Enfant qui contiendront la collection Parents et la collection Enfants

Je ne sais pas si j'ai pu être claire

D'avance merci