首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVVM Mediator多个实例

MVVM Mediator多个实例
EN

Stack Overflow用户
提问于 2009-11-03 21:42:35
回答 2查看 1.2K关注 0票数 1

有人能解释一下mediator模式是如何与多个实例一起工作的吗?

我在视图中的代码:

代码语言:javascript
复制
public MyView() {
    Mediator.Register("CloseWindow",()=>Close());
}

在ViewModel中:

代码语言:javascript
复制
public SomeMethod() {
    Mediator.Notify("CloseWindow");
}

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

如何解决多实例的问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-04 04:51:39

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

如果你对一个具体的例子感兴趣,那么你可以看看:

票数 1
EN

Stack Overflow用户

发布于 2009-11-04 01:15:12

我不知道您的中介模式的具体实现是如何工作的,但是在我的实现中,您可以发送比字符串更多的信息。

例如:

代码语言:javascript
复制
public MyView() {
    Mediator.Register<CloseWindowMessage>(message =>
    {
        if (message.ViewModel == DataContext) Close();
    });
}    

在ViewModel中:

代码语言:javascript
复制
public SomeMethod() {
    Mediator.Notify(new CloseWindowMessage(this));
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1667406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档