2010-07-19 18 views
0

J'utilise et réutilise souvent les commandes usercontrol dans mes applications. Par exemple, si un utilisateur doit entrer un nombre entier, j'ai un contrôle utilisateur nommé "IntegerEditor", qui a une étiquette pour le titre, une zone de texte pour l'entrée de l'utilisateur, et une étiquette pour les unités (pouces, secondes , etc...).WPF: propagation d'une erreur de validation dans l'arborescence

Mon contrôle utilisateur a déjà une règle de validation que j'ai appelée "IntegerValidationRule", qui contrôle si l'entrée de l'utilisateur est un nombre entier.

J'ai un style associé à cette règle de validation qui modifie l'arrière-plan du contrôle et ajoute le message d'erreur dans une info-bulle. Parfois, j'utilise ce type de contrôles de base dans mon interface utilisateur, mais je souhaite ajouter d'autres règles de validation, telles que "L'entier doit être supérieur à 1023", avec des messages d'erreur spéciaux comme "Port UDP sous 1024". , veuillez choisir un nombre plus élevé ". Savez-vous d'une quelconque manière que je pourrais ajouter ces règles de validations ailleurs mais que cela déclencherait toujours le style sur mon contrôle? J'ai pensé à propager l'erreur de validation dans l'arbre visuel, mais je n'ai rien trouvé de bien à propos de ça sur le net.

Merci pour les réponses de la vôtre,

A.Jeanrichard

Répondre

1

... Eh bien, vous pouvez répondre à routés « validation a échoué » événements, mais ce serait plus difficile l'OMI que d'avoir un niveau d'application ViewModel est responsable de la coordination de la validation entre différents ViewModels.

+0

Salut Randolpho, Nous vous remercions de votre réponse rapide. Je n'ai jamais vu d'exemple MVVM avec un viewModel responsable de la coordination d'autres viewModels. En fait, je n'ai jamais vu d'exemple MVVM qui inclue l'utilisation de UserControls. En connaissez-vous? Cela aiderait beaucoup. Cordialement, Antoine –

+0

Chaque contrôle utilisateur est lié à un modèle de vue, oui? Vos modèles de vue sont autorisés à se parler. Avoir un modèle de vue de coordination mettre à jour le modèle de vue lié au déclencheur. – Randolpho