Доброго времени суток. Такой вопрос:
имеется модель:
public class MyModel : ModelBase
{
public double Count
{
get => _count;
set
{
_count = value; OnPropertyChanged();
}
}
public virtual Model2 Model2
{
get => _model2;
set
{
_model2 = value; OnPropertyChanged();
}
}
public decimal Amount
{
get => decimal.Round(Model2.Price * (decimal)Count, 2, MidpointRounding.AwayFromZero);
}
}
в MyModel есть свойство Count
, в Model2 есть свойство Price
. В MyModel есть Calculated свойство Amount
.
А теперь вопрос: как мне уведомить об изменении Amount, когда поменялось свойство MyModel.Count
и Model2.Price?
При смене Model2
подпишитесь на ее событие PropertyChanged
и вызовите OnPropertyChanged(nameof(Amount));
:
public virtual Model2 Model2
{
get => _model2;
set
{
_model2.PropertyChanged -= Model2PropertyChanged;
_model2 = value;
_model2.PropertyChanged += Model2PropertyChanged;
OnPropertyChanged();
}
}
private void Model2PropertyChanged(...)
{
if (e.PropertyName == nameof(Model2.Price))
OnPropertyChanged(nameof(Amount));
}
Не забудьте при подписке проверку Model2
на null
Могут быть неточности по синтаксису - не проверял
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я работаю с VK APIПри запросах с браузера все работает стабильно, но при запросах из моей программы английские символы возвращаются правильно,...
У меня в конторе, где я работаю, есть множество кастомных библиотекВ том числе есть свой DAL для базы данных MSSQL
Каким способом можно определить если Control полностью отрисован в контейнеренужно в цикле проверить все дочерние контролы и определить какой...