Боюсь, что это может быть связано с главным образом основанным на мнении вопросом, в любом случае я хотел бы поделиться своей идеей.
Я не вижу слишком много проблем при запуске вычисления в установщике свойств.Наверное, важно, как ты это делаешь.IHMO, это не хорошо для репликации OnPropertyChanged("CalculatedPropertyName")
повсюду в вашем коде.
Я бы предпочел что-то вроде:
public int Quantity
{
get { return quantity; }
set
{
if (value != quantity)
{
quantity = value;
OnPropertyChanged();
Result = Quantity * Price;
}
}
}
public int Price
{
get { return price; }
set
{
if (value != price)
{
price = value;
OnPropertyChanged();
Result = Quanity * Price;
}
}
}
public int Result
{
get { return result; }
private set
{
if (value != result)
{
result = value;
OnPropertyChanged();
}
}
}
Таким образом, вы просто используете частный сеттер, и вы делаетеНе нужно помнить, чтобы поднять что-нибудь.Я предпочитаю этот способ, но если вы ищете более сложные способы, вы можете найти множество идей здесь и здесь .
Последнее, но непо крайней мере - мне не нравятся альтернативные способы, которые вы предложили, я чувствую, что они слишком извращены.