Question

Hé les gars, J'ai un TreeView WPF qui a trois nœuds, je voudrais le dernier enfant (le troisième noeud) pour contenir un ListView peuplé de mes données liées. La question que je me présente en est que si je mets un ListView dans le ItemTemplate de mon HierarchicalDataTemplate je reçois un ListView pour chaque enfant plutôt qu'un seul ListView avec le contenu. Ce comportement est prévu par la documentation, mais je suis à la recherche d'un travail autour de (peut-être modifier le ItemContainerStyle), malheureusement, je n'ai pratiquement aucune expérience avec le modèle de contrôle du TreeViewItem, ou pour cette question beaucoup d'expérience avec TreeViews en général.

Je l'ai regardé le posibility d'utiliser un TreeListView mais il ne correspond pas à mon cas d'utilisation, ni la liaison d'un contrôle séparé et l'affichage des données de cette façon.

Quelqu'un at-il déjà soit passé par le mal de tête de intercalant un ListView dans un TreeViewItem, ou quelqu'un peut suggérer comment modifier le ControlTemplate pour y parvenir?

Merci, Aj

Était-ce utile?

La solution 2

Virages sur la meilleure façon de faire face à la situation est de remplacer le HierarchicalDataTemplate sur le second nœud avec un Expander, réglez le ItemsSource sur le ListView plutôt que le HierarchicalDataTemplate et recoiffer le bouton sur le Expander pour ressembler à celui de un TreeViewItem .... sorta un hack mais cela fonctionne:)

Merci pour toute l'aide,

Aj

Autres conseils

Le noeud qui a le Listview devrait être un autre type de données que les deux autres noeuds de sorte qu'il peut être traitée différemment par l'arborescence. En outre, il semble que l'enfant qui contient les données de la vue de la liste ne devrait pas être dans un HierarchicalDataTemplate mais un régulier de DataTemplate, car il ne dispose pas d'autres éléments de l'enfant reconnus par la Treeview. Vous pouvez mélanger et assortir HierarchicalDataTemplate et DataTemplates régulièrement dans un Treeview comme bon vous semble, DataTemplates réguliers représentent des nœuds « feuille », ils n'ont pas d'enfants.

échantillon avec différents types de données utilisés dans Treeview mais toujours en utilisant des modèles hiérarchiques:

<HierarchicalDataTemplate DataType="{x:Type FooNormal}" ItemsSource="{Binding TreeviewChildNodeCollection}">
   // do something else here.
</HierarchicalDataTemplate>

<HierarchicalDataTemplate DataType="{x:Type FooList}" ItemsSource="{Binding TreeviewChildNodeCollection}">
  <ListView  ItemsSource="{Binding ListviewChildNodeCollection}">
   //use listview here
  </ListView>
</HierarchicalDataTemplate>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top