Обнаружить изменения в пользовательских элементах управления вводом в Silverlight? - PullRequest
1 голос
/ 14 мая 2010

У меня есть дочернее окно с несколькими полями Textbox, Combobox и DatePickers. Я хочу знать, изменил ли пользователь какое-либо значение в них (чтобы узнать, нужно ли мне сохранять в db)

Один из способов сделать это - обработчики событий 'on chg' и set bool. Но если пользователь изменяет значение, скажем, в выпадающем списке, то возвращается к исходному, это все равно будет рассматриваться как изменение.

Есть ли другие альтернативы?

(обратите внимание, что проект не настроен как MVVM)

1 Ответ

0 голосов
/ 14 мая 2010

Если вы не используете mvvm, но все еще привязываетесь к объекту, то:

  • перед отображением окна создайте копию объекта, сохраните ее и привяжите к DataContext
  • всякий раз, когда вам нужно узнать, вносил ли пользователь какие-либо изменения, вы можете сравнить сохраненный объект с DataContext (свойство за свойством)

Если вы вообще не используете связывание:

  • перед отображением окна сохраните все поля, которые можно изменить в Словаре
  • всякий раз, когда вам нужно знать, вносил ли пользователь какие-либо изменения, вы можете сравнивать значения словаря со значениями полей
...