在MVVM模式下工作
T
是一个类,来自我的edmx文件(实体框架)。
O
是ObservableCollection<T>
。
O
填充了数据库中的所有T
。
然后,用户从GUI编辑T
的某些字段。
如何解雇此事件?
我不想编辑我的edmx文件,我更喜欢保持它的生成方式。所以,这意味着我无法使用this之类的内容,因为我应该修改我的模型,实现INotifyPropertyChanged
。
答案 0 :(得分:1)
我认为你不应该直接在视图(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);
}
}
}