我首先在应用程序中使用EntityFramework数据库。我想以某种方式收到有关ViewModel中EntityCollection
更改的通知。它不直接支持INotifyCollectionChanged
(为什么?),而且我还没有成功找到其他解决方案。
这是我的最新尝试,因为ListChanged
事件似乎没有引发,所以不起作用:
public class EntityCollectionObserver<T> : ObservableCollection<T>, INotifyCollectionChanged where T : class
{
public event NotifyCollectionChangedEventHandler CollectionChanged;
public EntityCollectionObserver(EntityCollection<T> entityCollection)
: base(entityCollection)
{
IBindingList l = ((IBindingList)((IListSource)entityCollection).GetList());
l.ListChanged += new ListChangedEventHandler(OnInnerListChanged);
}
private void OnInnerListChanged(object sender, ListChangedEventArgs e)
{
if (CollectionChanged != null)
CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
}
有谁知道我如何观察
EntityCollection
的变化?担
最佳答案
你有没有尝试处理
AssociationChanged在对相关端进行更改时发生。 (继承自RelatedEnd。)
它提供了显示元素是添加还是删除的参数,还公开了该元素。