Développez WPF Expander pour afficher l'élément contenu
Question
J'ai un expandeur qui contient n éléments (éventuellement d'autres expandeurs contenant également des éléments).
Je souhaite maintenant afficher par programmation un élément contenu, comme avec BringIntoView () pour ScrollViewers. Tous les expandeurs qui cachent actuellement l'élément doivent être développés.
Mon idée actuelle est de sous-classer Expander et de le faire réagir à un événement qui remonte de l'élément contenu. Mais il existe peut-être un moyen beaucoup plus simple dans WPF, non?
La solution
Vous pouvez créer une propriété attachée pour le faire au lieu de sous-classer la classe Expander existante. Cet AP serait de type bool et définira sur True dans un registre expandeur pour l'événement Expanded. Dans le gestionnaire d'événements, vous pouvez parcourir l'arborescence logique pour récupérer l'expander parent et toogle est la propriété IsExpanded.