2009-08-20 5 views
0

Je suis un débutant complet chez WPF.WPF: Effacer tous les messages d'erreur de manière élégante

J'ai créé un usercontrol "labelTextbox" qui contient une étiquette, une zone de texte et un bloc de texte pour les messages d'erreur.

Lorsque l'utilisateur appuie sur le bouton d'envoi, j'appelle SomeValidationMethod() pour valider l'entrée de l'utilisateur. Lorsque l'une des zones de texte contient des données invalides, je passe l'erreur au contrôle utilisateur correspondant qui, à son tour, le montre à l'utilisateur.

Je viens du webworld où la page est rafraichie à chaque publication, ce qui signifie que vous ne devez vous soucier de régler les messages d'erreur lorsqu'une erreur est survenue. Mais dans WPF, vous devez également effacer les messages d'erreur lorsque l'erreur a été corrigée.

Je cherche un moyen dans WPF pour effacer en quelque sorte tous les messages d'erreur sur la page. Ensuite, je peux appeler SomeClearAllErrorsMethod() en haut de mon SomeValidationMethod().

donc je suppose que je dois les éléments suivants:

  • Une façon d'obtenir la collection de labeledTextbox usercontrols sur la page
  • Une façon de parcourir la collection que je peux définir la propriété ErrorMessage null pour chaque labelTextbox usercontrol

Mais, je me demande aussi s'il existe une façon plus élégante et pratique de faire ce que j'essaie d'accomplir.

Merci pour toutes les informations

+0

Si vous postez une partie de votre code, je pourrais peut-être vous aider avec une solution plus élégante. – Charlie

+0

Si vous avez de nombreux messages d'erreur que vous ne souhaitez pas supprimer en une seule fois, l'itération semble bonne. Cependant, j'ai une question. Vous avez certainement d'autres étiquettes dans votre page qui ne contiennent pas de messages d'erreur. Comment voulez-vous faire la différence entre eux et vos messages d'erreur? – paradisonoir

Répondre

2

Oh, vous faites cela d'une manière très non WPF (mais pas atypique pour quelqu'un qui apprend WPF alors ne vous sentez pas mal) - tout moment vous finissez par écrire une fonction "UpdateXXXX" dans laquelle vous manipulez les propriétés des contrôles, cela signifie généralement que vous devriez utiliser Data Binding à la place. Dans votre cas spécifique, vous souhaitez probablement vérifier la validation WPF (http://www.codeproject.com/KB/WPF/wpfvalidation.aspx).

+0

hehe .. merci pour le lien –

Questions connexes