J'ai un formulaire de connexion qui contient une zone de saisie de nom d'utilisateur et une zone de mot de passe.Utilisation de MultiBinding pour lier des éléments
Je souhaite que le bouton OK soit activé uniquement lorsque les deux champs contiennent une valeur.
J'ai un convertisseur qui vérifie toutes les chaînes si elles sont nulles ou vides.
J'ai placé un point d'arrêt sur la première ligne de la méthode Convert, et il s'arrête uniquement lorsque le MenuItem
initialise, par la suite, c'est-à-dire lorsque je modifie le texte.
L'exemple suivant fonctionne bien, le problème est que la liaison multiple n'est pas déclenchée lorsque je change de texte; il est seulement lié lors de l'initialisation de la forme:
<!--The following is placed in the OK button-->
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource TrueForAllConverter}">
<Binding ElementName="tbUserName" Path="Text"/>
<Binding ElementName="tbPassword" Path="Password"/>
</MultiBinding>
</Button.IsEnabled>
Je pense que le problème est que vous ne soyez pas averti lorsque est changé la source distante de liaison (par exemple, il n'y a pas une option pour définir UpdateTargetTrigger="PropertyChanged"
Tout. idées?
Pouvez-vous ajouter le code XAML pour vos contrôles tbUserName et tbPassword, et pour la déclaration de la ressource TrueForAllConverter? –
Je pense que Jerry est sur la bonne voie. Vous devez ajouter l'attribut UpdateSourceTrigger aux liaisons sur vos TextBoxes, de sorte que MultiBinding soit notifié lors de la modification plutôt que seulement lorsque le focus quitte les contrôles. –
Je ne répondrais pas si je ne voudrais pas rey et voir que cela ne fonctionne pas. en ce qui concerne le TrueForAllConverter J'ai placé un point de rupture au dessus de la méthode Convert, il s'arrête seulement quand le MenuItem s'initialise, donc nous ne nous soucions pas de ce qu'il y a dans le convertisseur, nous devrions d'abord essayer de l'atteindre. Si vous êtes vraiment curieux de savoir ce que le convertisseur me dit et je l'afficherai même si je pense que sa place n'est pas là. – Shimmy