У меня есть класс с именем DataStore
и список Department
с (ObservableCollection
), и у каждого отдела снова есть список Product
с.
Измененные свойства класса Product
также влияют на свойства классов Department
и DataStore
. Как каждый Product
уведомляет Department
, которому он принадлежит, и DataStore
(который является родительским классом всех), что одно или несколько его свойств изменили свои значения?
Пример:
продукт имеет свойство NumberSoldToday и является связанным. У Департамента есть свойство TotalNumberOfProductsSold:
public int TotalNumberOfProductsSold
{
get
{
int result = 0;
foreach(Product p in this.products)
result += p.NumberSoldToday;
return result;
}
}
А в хранилище данных есть свойство TotalProductsSold (для всех отделов):
public int TotalProductsSold
{
get
{
int result = 0;
foreach(Product p in this.deparments)
result += p.TotalNumberOfProductsSold;
return result;
}
}
Если все эти свойства связаны, а внутреннее свойство изменяется, оно должно каким-то образом уведомить, что значение других 2 также изменилось.
Как?
Единственный способ увидеть это - подключить событие PropertyChanged в каждом классе. Это событие также должно срабатывать при удалении, добавлении в коллекцию товаров и отделов соответственно.
Есть ли лучший, более умный способ сделать это?