2009-09-16 12 views
0

J'ai implémenté IDataErrorInfo dans une de mes classes pour valider une propriété de cette classe. La propriété est liée à un contrôle sur mon contrôle utilisateur wpf. La validataion fonctionne bien, sauf qu'il y a un défaut vital. Il semble appeler la chaîne publique member IDataErrorInfo cette [string columnName] avant que la propriété ne soit mise à jour, donc quand je vérifie la valeur de la propriété en cours de modification, elle contient la valeur précédente et non celle que je viens de saisir. Par conséquent, la validation est toujours un pas en arrière. Cela signifie que je ne peux pas vérifier les valeurs incorrectes qui viennent d'être saisies.Comment valider une propriété clr après qu'elle a été mise à jour au lieu d'avant lors de l'implémentation d'IDataErrorInfo?

Existe-t-il un moyen de forcer cette validation à être appelée après que la propriété a été mise à jour et pas avant. J'ai essayé de changer le UpdateSourceTrigger à la fois LostFocus et PropertyChanged mais ils rapportent toujours la valeur précédente, juste à des moments différents.

Merci.

+0

Un peu de XAML réel utilisé pour lier serait utile. Et aussi j'aimerais voir comment vous avez implémenté la notification de changement de propriété dans le BO. – Trainee4Life

+0

Pouvez-vous s'il vous plaît montrer la mise en œuvre d'une propriété particulière pour laquelle vous rencontrez ce problème (peu importe qu'elle soit générée)? –

Répondre

3

Le comportement auquel vous faites référence peut être reproduit lorsque des notifications de modification de propriété sont envoyées avant que la propriété ne soit affectée. Il se peut que l'appel de la notification de modification après avoir défini la valeur puisse faire l'affaire. Et juste pour l'enregistrement, je n'appelle pas la propriété a changé la notification comme ça!

+0

Bonne idée, mais j'utilise LinqToSql comme modèle et par défaut, la notification de modification de propriété est postérieure à la valeur définie. – HAdes

Questions connexes