在Silverlight中检测对用户输入控件的更改?

问题描述:

我有一个Textboxes,Comboboxes和DatePickers数量的子窗口。我想知道如果用户已经改变了这些值(要知道我是否需要保存到db)在Silverlight中检测对用户输入控件的更改?

我可以想到这样做的一种方式是在'在chg'事件处理程序和设置布尔。但是如果用户改变了这个值,比如说一个组合框,然后回到原来的位置,这仍然会被视为一个改变。

是否有其他的选择?

(注意此项目未设置为MVVM)

如果你不使用MVVM,但仍然绑定到一个对象,然后:

  • 显示在窗口之前创建的副本对象,保存它,并将其绑定到的DataContext
  • 每当你需要知道,如果用户让你可以保存对象比较DataContext的任何改变(由property属性)

I Y OU不使用绑定在所有然后:显示在窗口

  • 之前保存,可当你需要知道,如果用户所做的任何更改您可以比较字典中的值修改为词典
  • 所有领域到字段的值