2010-12-29 4 views
0

J'ai une fenêtre WPF qui a un datacontext de ma classe 'Item'. Lorsqu'un utilisateur tape dans un TextBox, la validation se déclenche sans problème. J'ai besoin de valider ce TextBox et toutes les autres propriétés qui sont définies dans cette classe liée lorsque l'utilisateur clique sur "Enregistrer".Besoin de valider toutes les propriétés de classe avec IDataErrorInfo implémentées

je ne crois pas UpdateSourceTrigger est ce que je cherche, bien que je l'ai mis à PropertyChanged lorsque l'utilisateur fait des données ne pas l'entrée sur le terrain.

Je fixerait plutôt pas toutes mes propriétés au contrôle de l'interface utilisateur correspondant sur Save cliquez pour forcer la mise à jour sur la propriété, mais je pouvais.

Merci!

Répondre

1

validation d'erreur de données est exécuté uniquement lors de la liaison pousse de nouvelles valeurs de propriété sur la source de données. Si vous voulez exécuter cette validation dans d'autres circonstances, vous devez écrire du code pour le faire.

Si vos propriétés de l'interface utilisateur sont liées aux propriétés de l'élément, la validation doit déjà avoir été exécutée pour chacune d'entre elles lorsque vous cliquez sur le bouton Save. Alors pourquoi avez-vous besoin de le relancer?

Un problème fréquent est lorsque vous avez défini vos liaisons à mettre à jour sur LostFocus, mais que l'objet sur lequel l'utilisateur clique pour enregistrer l'élément n'est pas focalisable. Dans ce cas, la dernière propriété mis à jour dans l'interface utilisateur est pas mis à jour dans la source de données lorsque l'élément est enregistré, puisque son contrôle n'a pas perdu le focus et sa liaison n'a pas tiré. Est-ce votre problème?

+0

Les propriétés de l'interface utilisateur sont liées aux propriétés de l'élément, comme vous le dites. Ces objets d'interface utilisateur ne sont jamais mis au point car l'utilisateur entre dans le contrôle utilisateur mais n'entre aucun objet d'interface utilisateur, donc pas de validation. Je suis allé de l'avant et a écrit le code pour appeler toute ma validation sur les propriétés lorsque l'utilisateur clique sur «Enregistrer». Merci. – knockando

Questions connexes