MVVM Mediator多个实例

时间:2009-11-03 13:42:35

标签: wpf mvvm mediator

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

我在视图中的代码:

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

并在ViewModel中:

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

只要View-ViewModel对只有一个实例,就可以找到它。

如何使用多个实例解决它?

2 个答案:

答案 0 :(得分:1)

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

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

WPF Application Framework (WAF)

答案 1 :(得分:0)

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

例如:

public MyView() {
    Mediator.Register<CloseWindowMessage>(message =>
    {
        if (message.ViewModel == DataContext) Close();
    });
}    

并在ViewModel中:

public SomeMethod() {
    Mediator.Notify(new CloseWindowMessage(this));
}

在此示例中,ViewModel将自身作为参数传递给视图。然后,视图可以检查消息是否从其视图模型发送。