Bonjour à tous,
j'utilise un arbre (treeview) pour afficher des listes d'éléments triées par "groupes".
par exemple mes données sont rangées dans des dictionnaires avec comme clés les noms de groupe.
avec deux niveaux les données sources sont stockées dans un objet du type Dictionary<String, Dictionary<String, List<MyData>>>.
et le template de l'arbre est le suivant:
je voudrais pouvoir changer le nombre de niveaux de groupe sans devoir modifier le template.
Code xaml : 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
17
18
19
20
21
22 <TreeView Name="treeview" ItemsSource="{Binding TreeViewData}" Grid.Row="1" Grid.Column="0" Margin="4" SelectedItemChanged="treeview_SelectedItemChanged"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}" > <TextBlock FontWeight="Bold" Text="{Binding Path=Key}" /> <HierarchicalDataTemplate.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}" > <TextBlock FontWeight="Bold" Text="{Binding Path=Key}" /> <HierarchicalDataTemplate.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=Name}" /> </DataTemplate> </HierarchicalDataTemplate.ItemTemplate> <HierarchicalDataTemplate.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"> <EventSetter Event="MouseDoubleClick" Handler="OnTreeItemDoubleClick" /> </Style> </HierarchicalDataTemplate.ItemContainerStyle> </HierarchicalDataTemplate> </HierarchicalDataTemplate.ItemTemplate> </HierarchicalDataTemplate> </TreeView.ItemTemplate> </TreeView>
est-ce qu'il est possible de rendre le template "dynamique" ?
en somme je voudrais pouvoir utiliser même template avec les types de données:
1 niveau: Dictionary<String, List<MyData>>et
2 niveaux: Dictionary<String, Dictionary<String, List<MyData>>>
Merci de votre aide.
Partager