J'ai un problème d'interface utilisateur avec l'édition en couches où un ensemble différent d'outils doit être visible en fonction du ComboBox
sélectionnant le calque et reculant sur l'idiome utiliser. Les outils ne doivent pas être dans un conteneur visible.Mise en page contextuelle - modification de la visibilité d'un ensemble d'outils WPF basé sur une zone de liste déroulante
La sélection ComboBox
est liée à une propriété entière simple dans le ViewModel.
Les alternatives que j'ai envisageais sont pour la plupart basées sur une série de StackPanel
conteneurs au même endroit:
- Bind les Propriétés de visibilité de
StackPanel
s à une autre propriété ViewModel pour chacun, alors les visibilité les propriétés calculent en fonction de la valeur de support du Combo. Je devrai ajouter une autre notification pour m'assurer qu'ils sont actualisés lorsque le Combo change. - Utiliser un
ValueConverter
pour lierStackPanel
les propriétés de visibilité de s directement à la sélection Combo - Mettre les
StackPanel
s dans chacune desTabItem
s dans unTabControl
et supprimer tout dessin d'en-tête, de sorte que la sélectionTabControl
peut être directement mis en correspondance avec la sélection Combo. - Utilisez une sous-classe
Selector
ou simplement un modèle de sélecteur pour obtenir le comportement de 3 sans bagage deTabControl
. - L'approche que j'utilise pour l'instant - a ajouté un gestionnaire
Click
au popup sur lequel leur visibilité est censée dépendre et simplement définir la visibilité des différents panneaux en fonction deSelectedIndex
de ce popup. Très old school mais simple et facile à suivre.