2010-05-13 2 views
1

J'ai un childwindow avec un certain nombre de Textboxes, Comboboxes et DatePickers. Je veux savoir si un utilisateur a changé n'importe quelle valeur dans ceux-ci (pour savoir si j'ai besoin d'enregistrer en db)Détecter les modifications apportées aux contrôles de saisie utilisateur dans Silverlight?

Une façon dont je pourrais penser à faire cela est dans les gestionnaires d'événements 'on chg' et définir bool. Mais si un utilisateur modifie la valeur, par exemple une liste déroulante, puis revient à l'original, cela sera toujours considéré comme un changement.

Y a-t-il d'autres alternatives?

(notez le projet est mis en place comme MVVM)

Répondre

0

Si vous n'utilisez pas MVVM mais toujours lier à un objet alors:

  • avant que la fenêtre est affichée de créer une copie de la objet, enregistrez-le, et le lier à DataContext
  • chaque fois que vous devez savoir si l'utilisateur a fait des changements que vous pouvez comparer l'objet enregistré sur DataContext (propriété par propriété)

I y ous ne pas utiliser la liaison du tout alors:

  • avant que la fenêtre est affichée, sauf tous les champs qui peuvent être modifiés à un dictionnaire
  • chaque fois que vous devez savoir si l'utilisateur a fait des changements que vous pouvez comparer les valeurs du dictionnaire aux valeurs des champs
Questions connexes