Est-il un moyen d'étendre automatiquement tous les nœuds d'une arborescence dans WPF? J'ai cherché et n'ai même pas trouver une fonction de développement dans l'arborescence de la propriété.
Grâce
- Oublié de mentionner que je n'ai pas TreeviewItem, mais différentes sortes d'articles dans mon arbre.
Vous pouvez définir ItemContainerStyle et l'utilisation IsExpanded propriété.
Si vous avez besoin de le faire à partir de code, vous pouvez écrire viewmodel pour votre arborescence des éléments, et de le lier IsExpanded propriété de l'un correspondant à partir du modèle. Pour plus d'exemples, se référer à l'excellent article de Josh Smith sur CodeProject: La simplification de la WPF TreeView en Utilisant le ViewModel Modèle
C'est ce que j'utilise:
Pour qu'il fonctionne, vous devez appeler cette méthode dans une boucle foreach pour le nœud racine:
Carlo réponse est préférable, car elle ouvre tous les niveaux
Cela améliore exemple ci-dessus avec un peu plus concis exemple de code.
L'appeler en utilisant cette ligne de code
foreach (TreeViewItem childItem in TreeItem.Items)
est plus courte que votre foreach mais fonctionne tout aussi bien. 🙂TreeViewItem
. Voir Anvaka commentaire de Carlo réponse.si vous souhaitez étendre manuellement, vous pouvez essayer
Xaml:
c#:
Un autre programmatiques façon de manipuler la pleine expansion des objets de l'arbre, peut-être via le code c#, est à l'aide de la
TreeViewItem.ExpandSubTree()
commande sur un nœud racine.Items
sous l'arbre? Ne devrions-nous pas tout faire?