J'ai un bouton lié à la propriété Validation.HasError d'un bloc de texte. Le bloc de texte a une règle de validation qui vérifie la valeur entrée par l'utilisateur. Le but de la liaison est que le bouton soit désactivé si l'utilisateur entre une mauvaise donnée.La liaison se produit avant la validation
Le problème est que la ValidationRule s'exécute APRÈS la liaison. Ainsi, lorsque l'utilisateur tape une valeur incorrecte, la liaison vérifie la propriété HasError du bloc de texte, qui est FALSE, de sorte que le bouton est activé. Et puis la validationrule s'exécute. Il en résulte une situation inverse dans laquelle le bloc de texte est invalide et le bouton est activé.
Comment est-ce que je pourrais spécifier lequel (la liaison et la validation) s'exécute en premier?
Voici le XAML:
<MultiBinding Converter="{StaticResource ButtonVisibilityConverter}" UpdateSourceTrigger="PropertyChanged" Mode="OneWay" >
<Binding ElementName="integerInput" Path="HasValidationError"/>
<Binding ElementName="doubleInput" Path="HasValidationError"/>
</MultiBinding>
</Button.IsEnabled>
Je suis sûr que ce n'est pas le cas. Le contrôle de bloc de texte dont je parle est un spinner personnalisé (zone de texte avec deux boutons +/-). Le contenu du spinner est lié à une propriété dans le viewmodel. Chaque fois que l'on clique sur le bouton + ou - une commande est exécutée et incrémente ou décrémente la valeur dans la zone de texte.