读了很多关于IObservable的信息,我想知道在我的场景中,模式会给我什么(如果有的话)。我是否需要使用IObservable来跟踪对集合的更改?
我有一个数据网格的WPF应用程序,网格绑定到产品的IObservable集合。
ProductList.DataContext = AppState.Current.Products
...其中AppState.Current.Products返回ObservableCollection<Product>
我的目标是:
- 轨道改变对象的列表
- 通知的对象发生了变化,因此UI我可以启用 保存按钮
我的产品类看起来是这样的......
public class Product
{
string _desc;
public string Description
{
get { return _desc; }
set { _desc = value; }
}
}
现在,如果我为Description
确实被调用我的网更新行中的描述栏的制定者。所以我可以在这里预订一些代码,在我的产品上设置一个Dirty
标志,然后我可以使用它来查询需要保留到数据库的已更改产品的列表。
我认为我可以使用IObservable来满足我的第二个目标,即通知用户界面一行已更改?还是有一个更简单的方法,如网格上的一些属性?
如果我要使用IObservable,我已经看到了产品公开可以订阅的事件的示例。但是,我不想将事件处理程序连接到所有对象。一般来说,当集合中的任何对象发生变化时,我需要一些东西来告诉我。
此外,我将如何将此通知连接到我的用户界面。
你看了INotifyPropertyChanged? http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx – Lloyd