WCF Ria服务实体和INotifyPropertyChanged
|
我遇到一个问题,即不是针对所有属性都引发了从生成的Ria Services实体产生的PropertyChanged事件。
当查看生成的代码(客户端)时,可以看到我的实体是从实现INotifyPropertyChanged的Entity对象派生的。我还可以看到某些属性(例如Id属性)引发了PropertyChanged事件,但有些却没有。
我没有使用任何T4模板,因此使用了默认模板。
所以,我的问题是:
我是否可以设置选项/属性,以便针对生成的客户端实体的任何属性引发PropertyChanged事件?
任何帮助,将不胜感激。
编辑:
这是自动生成的客户端文件中的一个属性示例,它不会引发PropertyChanged事件:
[DataMember()]
[Required()]
[StringLength(50)]
public string FirstName
{
get
{
return this._firstName;
}
set
{
if ((this._firstName != value))
{
this.OnFirstNameChanging(value);
this.RaiseDataMemberChanging(\"FirstName\");
this.ValidateProperty(\"FirstName\", value);
this._firstName = value;
this.RaiseDataMemberChanged(\"FirstName\");
this.OnFirstNameChanged();
}
}
}
这就是模型服务器端中定义的内容:
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.String FirstName
{
get
{
return _FirstName;
}
set
{
OnFirstNameChanging(value);
ReportPropertyChanging(\"FirstName\");
_FirstName = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged(\"FirstName\");
OnFirstNameChanged();
}
}
这是自动生成的客户端文件中的一个属性示例,它确实引发了PropertyChanged事件:
[DataMember()]
[Editable(false, AllowInitialValue=true)]
[Key()]
[RoundtripOriginal()]
public Guid Id
{
get
{
return this._id;
}
set
{
if ((this._id != value))
{
this.OnIdChanging(value);
this.ValidateProperty(\"Id\", value);
this._id = value;
this.RaisePropertyChanged(\"Id\");
this.OnIdChanged();
}
}
}
这就是模型服务器端中定义的内容:
[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Guid Id
{
get
{
return _Id;
}
set
{
if (_Id != value)
{
OnIdChanging(value);
ReportPropertyChanging(\"Id\");
_Id = StructuralObject.SetValidValue(value);
ReportPropertyChanged(\"Id\");
OnIdChanged();
}
}
}
没有找到相关结果
已邀请:
1 个回复
乐遣杀屎