繁体   English   中英

MVVM介体多个实例

[英]MVVM Mediator multiple instances

有人可以解释中介模式如何与多个实例一起使用。

我在视图中的代码:

public MyView() {
    Mediator.Register("CloseWindow",()=>Close());
}

并在ViewModel中:

public SomeMethod() {
    Mediator.Notify("CloseWindow");
}

只要只有View-ViewModel对的一个实例,就可以找到此项目。

如何解决多个实例?

我使用替代解决方案。 MyView实现了一个包含Close方法的接口IMyView。 MyViewModel对象关联了View,因此它可以通过该接口调用Close方法。

如果您对一个具体示例感兴趣,那么可以看看:

WPF应用程序框架(WAF)

我不知道您对中介模式的特定实现方式是如何工作的,但是在我的系统中,您不仅可以发送字符串,还可以发送更多的信息。

例如:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM