我正在为我的模型层使用 Entity Framework ,我想连接一个 PropertyChanged
事件,该事件根据属性的 OldValue 和 NewValue 更改另一个属性。有没有我可以为此 Hook 的内置方法?
我希望在我的 PropertyChanged
事件中的基本逻辑是
if (oldValue.DefaultPropertyA == this.PropertyA)
this.PropertyA = newValue.DefaultPropertyA;
最佳答案
您有 OnPropertyChanging 分部方法。在那里您可以访问新值。
旧值,是当时属性的值,因此您可以通过常规属性访问它。
代码生成文件的结构如下:
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 模板以将此代码注入(inject)您的属性(property)或使用代码优先以便您可以直接访问
关于c# - EntityObjects 是否有允许我访问 OldValue 和 NewValue 的 PropertyChanged 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604607/