可观察集合:管理事件
本文关键字:管理 事件 集合 观察 | 更新日期: 2023-09-27 18:23:56
在 MVVM 模式下工作
T
是一个类,来自我的 EDMX 文件(实体框架(。
O
是一个ObservableCollection<T>
.
O
填充了数据库中的所有T
。
然后,T
的某些字段由用户从GUI编辑。
如何触发此事件?
我不想编辑我的 edmx 文件,我更喜欢保持它生成的样子。所以,这意味着我不能使用这样的东西,因为我应该修改我的模型,实现INotifyPropertyChanged
。
我认为您不应该直接在视图 (GUI( 中与 EDMX 中的模型对象进行交互。创建一个视图模型来包装你的模型类T
,让你的新视图模型实现INotifyPropertyChanged
,并在ObservableCollection
中使用它。在创建视图模型时传入模型对象。当视图模型上的属性发生更改时,更新模型对象并触发PropertyChanged
事件(我使用 YourEdmxClass
代替T
T
因为它经常与泛型一起使用(:
public class YourEdmxClassViewModel : ViewModel
{
private YourEdmxClass model;
public YourEdmxClassViewModel(YourEdmxClass model)
{
this.model = model;
}
public int SomeProperty
{
get { return this.model.SomeProperty; }
set
{
this.model.SomeProperty = value;
this.RaisePropertyChanged(() => this.SomeProperty);
}
}
}