2009-10-21 7 views
2

Comment puis-je forcer la validation lorsque l'utilisateur clique sur le bouton?Exécuter la validation de l'élément WPF en C#?

On pourrait penser que cela devrait être facile, car vous devez toujours faire quelque chose si les valeurs des éléments sont valides.

private void buttonOk_Click(object sender, RoutedEventArgs e) 
{ 
    // How can I force the validation here? So that empty values are not allowed (validator doesn't allow those) 

    if (Validation.GetHasError(textBoxURI) || 
     Validation.GetHasError(textBoxName)) // These return valid values if user has not changed values in fields. 
     return; 

    DialogResult = true; 
    this.Close(); 
} 

Comme vous pouvez le deviner, la valeur vide est invalide selon mon validateur (si je tape quelque chose à textbox) puis le vider et le flou de la mise au point, il affichera valeur non valide.

En note: UpdateSourceTrigger n'affectera pas le problème connexe que les valeurs initiales ne sont pas validées.

Répondre

1

Vous devez appeler UpdateSource sur le BindingExpression. Cet exemple avec une zone de texte, où nous validation force à se produire:

BindingExpression exp = textBox.GetBindingExpression(TextBox.TextProperty); 
exp.UpdateSource(); 
0

Avez-vous essayez d'utiliser MultiTrigger ou MultiDataTrigger? En utilisant ceci, vous pouvez définir votre règle actuelle ... et toute autre règle de validation que vous pourriez trouver.

Check this out:

+0

Je l'ai lu à ce sujet oui, quelqu'un a fait une condition pour arrêter le bouton « ok » a permis l'utilisation de ces ... – Ciantic

+0

Si vous ne connaissez comment définir DialogResult à true à l'aide de MultiTrigger dites-le, j'ai eu du mal à le faire. – Ciantic

Questions connexes