是否实体对象有一个PropertyChanged事件,允许我访问OldValue和NewValue
本文关键字:访问 允许我 OldValue NewValue 事件 实体 对象 有一个 PropertyChanged 是否 | 更新日期: 2023-09-27 18:18:31
我使用实体框架为我的模型层,我想挂钩一个PropertyChanged
事件,根据属性的OldValue和NewValue改变另一个属性。是否有一个内置的方法,我可以钩到它?
我想在PropertyChanged
事件中的基本逻辑是
if (oldValue.DefaultPropertyA == this.PropertyA)
this.PropertyA = newValue.DefaultPropertyA;
你有OnPropertyChanging部分方法。在这里,您可以访问newvalue。
旧值,是属性在那一刻的值,所以你可以通过常规属性访问它。
代码生成文件中的结构如下:
public global::System.String Property
{
get
{
return _Property;
}
set
{
OnPropertyChanging(value);
ReportPropertyChanging("Property");
_Property = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("Property");
OnPropertyChanged();
}
}
private global::System.String _Property;
partial void OnPropertyChanging(global::System.String value);
partial void OnPropertyChanged();
正如你所看到的,你可以使用OnPropertyChanging和OnPropertyChanged部分方法来通知属性更改。
如果你想改变正在设置的属性的值,你不能在分部方法中这样做。如果你真的想要这个,你应该改变你的T4模板,将这段代码注入到你的属性中,或者使用code First,这样你就可以直接访问