我们将数据模型从WPF移植到Silverlight。在WPF方面,数据模型的每个元素都支持动态初始化,因此我们不必担心任何簿记。例如:
public UnitNameClass UnitName
{
get
{
if ((this.unitNameField == null))
{
this.unitNameField = new UnitNameClass();
}
return this.unitNameField;
}
set
{
if (((this.unitNameField == null)
|| (this.unitNameField.Equals(value) != true)))
{
this.unitNameField = value;
this.OnPropertyChanged("UnitName"));
}
}
}
从代表数据模型的XSD为我们生成了大多数类。我们添加了一些其他扩展类,这些扩展类不在XSD文件中。
Silverlight为其代理类生成以下格式的属性:
public UnitNameClass UnitName
{
this.OnCreated();
}
public UnitNameClass UnitName
{
get
{
return this._unitName;
}
set
{
if ((this._unitName != value))
{
this.OnUnitNameChanging(value);
this.RaiseDataMemberChanging("UnitName");
this.ValidateProperty("UnitName", value);
this._unitName = value;
this.RaiseDataMemberChanged("UnitName");
this.OnUnitNameChanged();
}
}
}
显然,我们打算在OnCreated部分函数中初始化所有属性,但我们更愿意在get属性中添加一些逻辑。
以前有没有人遇到过这个问题?