web-dev-qa-db-fra.com

Activer / désactiver la zone de texte en fonction de la sélection de cases à cocher dans WPF à l'aide de MVVM

J'ai un formulaire WPF avec jusqu'à 40 zones de texte, avec une case à cocher pour chacune. Chaque zone de texte doit être activée/désactivée en fonction de la valeur de sa case à cocher correspondante. J'ai vu des solutions où nous pouvons utiliser ICommand pour y parvenir, mais comment gérer 40 cas individuels sans avoir 40 implémentations ICommand?

45
aliensurfer

Liez simplement la propriété IsEnabled de TextBox à la propriété IsChecked de CheckBox:

<CheckBox Name="checkBox1" />
<TextBox IsEnabled="{Binding ElementName=checkBox1, Path=IsChecked}" />
105
Thomas Levesque

si vous avez 40 contrôles comme celui-ci, je créerais un nouveau contrôle contenant la case à cocher et la zone de texte. Vous pouvez utiliser ce nouveau contrôle sans avoir à implémenter 40 commandes, mais votre nouveau contrôle a une implémentation de commande unique. et c'est aussi moins de code à conserver comme avantage supplémentaire

0
Wesley Kenis