У меня есть модель, которая выглядит примерно так:
private bool IsProduct {get; set;}
private decimal ProductPrice {get; set;}
private decimal TimedRate {get; set;}
public decimal SingularAmount {
get {
if (this.IsProduct) {
return ProductPrice;
}
else {
return TimedRate;
}
}
set {
if (this.IsProduct) {
this.ProductPrice = value;
}
else {
this.TimedRate = value;
}
}
}
Я привязываюсь к этому свойству SingularAmount через службы RIA в Silverlight 3 DataGrid. Я обнаружил, что при изменении свойства соответствующие свойства модели не обновляются. Когда я просматриваю код, я вижу на стороне клиента, что SingularAmount установлен, например, на 5, другие свойства не обновляются.
Похоже, что когда RIA создает клиентскую версию классов, этот вид функциональности не переносится. Есть идеи, как с этим справиться?
Обновлять
Вот сгенерированный RIA код для этого свойства:
[DataMember()]
public decimal SingularAmount
{
get
{
return this._singularAmount;
}
set
{
if ((this._singularAmount != value))
{
this.ValidateProperty("SingularAmount", value);
this.OnSingularAmountChanging(value);
this.RaiseDataMemberChanging("SingularAmount");
this._singularAmount = value;
this.RaiseDataMemberChanged("SingularAmount");
this.OnSingularAmountChanged();
}
}
}
Очевидно, это не очень похоже на исходное свойство на стороне сервера.