我在 EntityObject 上有几个自定义计算属性。我想触发 PropertyChanged 事件来通知所有绑定(bind)。但这不起作用,当我使用 ReportPropertyChanged 时,它会引发参数异常:
De eigenschap Name heeft geen geldige entiteitstoewijzing op het entiteitsobject. Zie de documentatie van Entity Framework voor meer informatie.
这意味着 Name
不是实体属性,我应该查看 Entity Framework 文档以获取更多信息。有没有办法调用该事件并使 Entity Framework 忽略它?
代码示例:
partial class Preset
{
public string Name
{
get
{
if (this.SystemPreset)
return Translate("preset_" + this.Name_Original + "_name");
else
return this.Name_Original;
}
set
{
if (!value != this.Name_Internal)
{
this.Name_Internal = value;
ReportPropertyChanged(Name);
}
}
}
}
属性名称是自定义属性。当我尝试通过 EntityObject 中的 ReportPropertyChanged 方法触发 PropertyChanged 时, Entity Framework 将引发异常。
最佳答案
您应该能够从自定义属性 setter 中调用 OnPropertyChanged("YourPropertyName")
( msdn ),WPF 就会拾取它。
这适用于我在 Visual Studio 2010、.NET 4.0 中与 SQLServer CE 数据库对话(我认为它是 Entity Framework 4,但我不确定)。
关于.net - 在 EntityObject 中的自定义属性上引发 PropertyChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4155220/