Angenommen, ich habe eine einfache Klasse namens Order, die eine berechnete Eigenschaft TotalPrice hat, die an die WPF-Benutzeroberfläche gebunden werden kann
public class Order : INotifyPropertyChanged
{
public decimal ItemPrice
{
get { return this.itemPrice; }
set
{
this.itemPrice = value;
this.RaisePropertyChanged("ItemPrice");
this.RaisePropertyChanged("TotalPrice");
}
}
public int Quantity
{
get { return this.quantity; }
set
{
this.quantity= value;
this.RaisePropertyChanged("Quantity");
this.RaisePropertyChanged("TotalPrice");
}
}
public decimal TotalPrice
{
get { return this.ItemPrice * this.Quantity; }
}
}
Ist es eine gute Praxis, RaisePropertyChanged("TotalPrice") in den Eigenschaften aufzurufen, die sich auf die Berechnung von TotalPrice auswirken? Was ist der beste Weg, die TotalPrice-Eigenschaft zu aktualisieren? Die andere Version, dies zu tun, besteht natürlich darin, die Eigenschaft wie folgt zu ändern
public decimal TotalPrice
{
get { return this.ItemPrice * this.Quantity; }
protected set
{
if(value >= 0)
throw ArgumentException("Die set-Methode kann nur für Aktualisierungszwecke verwendet werden");
}
}
und TotalPrice = -1 anstelle von this.RaisePropertyChanged("TotalPrice"); in anderen Eigenschaften aufzurufen. Bitte schlagen Sie bessere Lösungen vor
Vielen Dank