【发布时间】:2014-07-23 13:53:30
【问题描述】:
我的模型类是由实体框架从数据库中自动生成的,所以它们无法实现INotifyPropertyChanged。我的 XAML 中有这个:
<DataGrid ItemsSource={Binding CollectionView}/>
在充当DataContext的类中:
public ICollectionView CollectionView { get; set; }
private DbSet _data;
在它的构造函数中:
_data.Load();
CollectionView = CollectionViewSource.GetDefaultView(_data.Local);
应用程序的另一部分进行数据库更新,这会更改实体实例的一个属性。之后我打电话给
_data.Load();
CollectionView.Refresh();
但更新未出现在 DataGrid 中。 我该怎么办?
对我来说奇怪的是,我可以使用 _data.Load() 显示数据库插入,所以我的印象是这个调用完全重建了数据库中的 Local 集合。
【问题讨论】:
-
"我的模型类是 Entity Framework 从数据库中自动生成的,所以无法实现 INotifyPropertyChanged。"这不是真的,您可以修改生成类的 T4 模板并让它们实现 INPC。不说这是解决方案,只是说这是一个错误的陈述。 blogs.msdn.com/b/efdesign/archive/2009/01/22/…
标签: c# wpf entity-framework datagrid wpfdatagrid