2009-08-03 4 views
3

Quelqu'un pourrait-il expliquer comment fonctionne HierarchicalDataTemplateWPF HierarchicalDataTemplate

  • Quels contrôles soutient HierarchicalDataTemplate?
  • Qu'est-ce qu'un contrôle doit prendre en charge HierarchicalDataTemplate?

MISE À JOUR

  • Quelles sont les causes de la TreeView rendre les nœuds parents et de l'enfant lorsque le même HierarchicalDataTemplate dans une HeaderedItemsControl provoque que le parent à être rendu?

Répondre

1

Un tel contrôle doit être de type HeaderedItemsControl ou dérivé de celui-ci. Les contrôles d'infrastructure actuels sont MenuItem, ToolBar et TreeViewItem. HeaderedItemsControl remplace la méthode PrepareContainerForItemOverride et quelque part le long de ce chemin d'accès vérifie HierarchicalDataTemplate.

+0

Alors, qu'est-ce qui fait que TreeView rend les noeuds parent et enfant quand le même HierarchicalDataTemplate dans un HeaderedItemsControl provoque seulement le rendu du parent? – thmsn

+2

Le DataTemplate ne "provoque" pas le rendu du parent. HierarchicalDataTemplate a une propriété ItemsSource qui est automatiquement appliquée au ItemsSource de HeaderedItemsControl dans le code. Sinon, c'est comme un ItemScontrol habituel. –

3

Quels contrôles prennent en charge HierarchicalDataTemplate?

Tous les contrôles héritant HeaderedItemsControl, tels que TreeViewItem ou MenuItem

Qu'est-ce qu'un contrôle a besoin pour soutenir HierarchicalDataTemplate?

Héritant de HeaderedItemsControl devrait être assez