有人能解释一下mediator模式是如何与多个实例一起工作的吗?
我在视图中的代码:
public MyView() {
Mediator.Register("CloseWindow",()=>Close());
}在ViewModel中:
public SomeMethod() {
Mediator.Notify("CloseWindow");
}只要View - ViewModel对只有一个实例,就可以找到它。
如何解决多实例的问题?
发布于 2009-11-04 04:51:39
我使用另一种解决方案。MyView实现了一个包含Close方法的接口IMyView。MyViewModel对象关联视图,因此它可以通过接口调用Close方法。
如果你对一个具体的例子感兴趣,那么你可以看看:
发布于 2009-11-04 01:15:12
我不知道您的中介模式的具体实现是如何工作的,但是在我的实现中,您可以发送比字符串更多的信息。
例如:
public MyView() {
Mediator.Register<CloseWindowMessage>(message =>
{
if (message.ViewModel == DataContext) Close();
});
} 在ViewModel中:
public SomeMethod() {
Mediator.Notify(new CloseWindowMessage(this));
}在本例中,ViewModel将自身作为参数传递给视图。然后,视图可以检查消息是否从其视图模型发送。
https://stackoverflow.com/questions/1667406
复制相似问题