Предполагая, что ваш POCO не может реализовать INotifyPropertyChanged
, вы можете использовать шаблон mediator для оповещения других моделей представления об изменении POCO:
public interface ICareWhenAModelChanges<T>
{
void ModelUpdated(T updatedModel);
}
public class ModelChangeMediator<T>
{
private List<ICareWhenAModelChanges<T>> _listeners = new List<ICareWhenAModelChanges<T>>();
public void Register(ICareWhenAModelChanges<T> listener)
{
_listeners.Add(listener);
}
public void NotifyThatModelIsUpdated(T updatedModel)
{
foreach (var listener in _listeners) listener.ModelUpdated(updatedModel);
}
}
Ваша модель представления может затем реализовать интерфейс ICareWhenAModelChanges<T>
, зарегистрировать себя в совместно используемом экземпляре посредника (полученном с помощью одноэлементной или, что лучше, некоторой структуры DI / IoC) и делать все, что нужно в ModelUpdated
метод