有人可以解释介体模式如何与多个实例一起使用。
我在视图中的代码:
public MyView() {
Mediator.Register("CloseWindow",()=>Close());
}
并在ViewModel中:
public SomeMethod() {
Mediator.Notify("CloseWindow");
}
只要View-ViewModel对只有一个实例,就可以找到它。
如何使用多个实例解决它?
答案 0 :(得分:1)
我使用替代解决方案。 MyView实现了一个包含Close方法的IMyView接口。 MyViewModel对象关联View,因此它可以通过接口调用Close方法。
如果您对具体示例感兴趣,那么您可以查看:
答案 1 :(得分:0)
我不知道你的中介模式的特定实现是如何工作的,但是在我的中你可以发送更多信息而不仅仅是字符串。
例如:
public MyView() {
Mediator.Register<CloseWindowMessage>(message =>
{
if (message.ViewModel == DataContext) Close();
});
}
并在ViewModel中:
public SomeMethod() {
Mediator.Notify(new CloseWindowMessage(this));
}
在此示例中,ViewModel将自身作为参数传递给视图。然后,视图可以检查消息是否从其视图模型发送。