为免我们说有几个页面可以从同一个EntitySet中检索项目。如果我在一个页面上添加一个新实体,我需要将它添加到EntitySet集合和myCollection:
Context.EntitySet.Add(item);
myCollection.Add(item);
通知其他网页添加(或删除)新项目的最佳方法是什么?编辑实体没有问题,因为所有页面都会毫无问题地获得更改通知。
答案 0 :(得分:0)
建议的方法是直接绑定到IEnumerable<T> myCollection
,而不是绑定到Context.EntitySet<T>
的不同实例。 EntitySet<T>
实现INotifyCollectionChanged
和INotifyPropertyChanged
接口。当您绑定到EntitySet<T>
的同一个实例时,可以通过响应EntitySet<T>.CollectionChanged
事件向每个页面通知更改。例如:
// Page 1
_myCollection = Context.EntitySet<MyItem>();
_myCollection.CollectionChanged += MyItemsChanged;
...
// Page 2
_myCollection = Context.EntitySet<MyItem>();
_myCollection.CollectionChanged += MyItemsChanged;
当任何页面从集合中添加或删除时,将通知所有页面。
关于您的评论,IEnumerable<T>
未实现INotifyCollectionChanged
界面,也未发布任何更改通知。最好的结果来自直接使用EntitySet<T>
。