[英]MVVM Mediator multiple instances
有人可以解释中介模式如何与多个实例一起使用。
我在视图中的代码:
public MyView() {
Mediator.Register("CloseWindow",()=>Close());
}
并在ViewModel中:
public SomeMethod() {
Mediator.Notify("CloseWindow");
}
只要只有View-ViewModel对的一个实例,就可以找到此项目。
如何解决多个实例?
我使用替代解决方案。 MyView实现了一个包含Close方法的接口IMyView。 MyViewModel对象关联了View,因此它可以通过该接口调用Close方法。
如果您对一个具体示例感兴趣,那么可以看看:
我不知道您对中介模式的特定实现方式是如何工作的,但是在我的系统中,您不仅可以发送字符串,还可以发送更多的信息。
例如:
public MyView() {
Mediator.Register<CloseWindowMessage>(message =>
{
if (message.ViewModel == DataContext) Close();
});
}
并在ViewModel中:
public SomeMethod() {
Mediator.Notify(new CloseWindowMessage(this));
}
在此示例中,ViewModel将自身作为参数传递给视图。 然后,视图可以检查是否正在从其视图模型发送消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.