Код: Выделить всё
WeakReferenceMessenger.Default.Register(this, (r, m) =>
{
if (this.MyObjects != null)
{
var myObj = this.MyObjects.FirstOrDefault(x => x.MyObject == m.Value.MyObject);
if (myObj != null)
{
myObj = m.Value;
//myObj.MyProperty = m.Value.MyProperty; //this updates UI, above line does not
}
}
});
Однако, если я обновлю свойство myObj следующим образом:
Код: Выделить всё
myObj.MyProperty = m.Value.MyProperty;Я предполагаю, что это связано с тем, что изменение объекта не запускает PropertyChanged событие (поскольку это не добавление/обновление/переупорядочение коллекции), в отличие от изменения свойства объекта.
Итак, два вопроса:
- Правильно ли я понимаю, почему это не работает?
- Как лучше всего справиться с ситуацией, когда какие-либо/все свойства могли измениться? Я хочу избежать необходимости вручную записывать обновления для каждого свойства объекта (которые затем сломаются, если будет добавлено новое свойство, и я забуду обновить это сообщение).
Подробнее здесь: https://stackoverflow.com/questions/787 ... is-changed