如何处理这样的情况呢?具有对相同POCO对象的引用的多于一个的ViewModel。ViewModel A更新POCO...现在ViewModel B需要以某种方式知道这一点?
发布于 2011-11-03 21:25:20
假设您的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方法中执行所需的任何操作
https://stackoverflow.com/questions/7995517
复制相似问题