【问题标题】:Invoking ViewModel related code from Model从 Model 调用 ViewModel 相关代码
【发布时间】:2015-02-15 23:51:46
【问题描述】:

问题是,例如,有时Model 应该通知ViewModel 以显示消息框。有时模型应该改变ViewModel 的状态。进行此类通知的正确方法是什么?

有什么有用的模式吗?

【问题讨论】:

  • 事件很笨拙。观察者呢?
  • .Net 事件是否已经实现了该模式?

标签: c# wpf mvvm architecture


【解决方案1】:

没有唯一的正确答案,这是一个设计决定。

可能的替代方案:

  1. 模型可以公开事件成员。
  2. 模型可以实现IObservable<T> 接口或公开IObservable<T> 成员。顺便说一句,Observable.FromEventPattern Method 允许将 .NET 事件转换为可观察序列。
  3. 模型可以使用回调接口。例如,只是为了演示这个想法:
interface INumberHandler
{
    void Handle(int number);
}

class NumberViewModel : INumberHandler
{
}

class NumberService
{
    public void Calculate(INumberHandler handler)
    {
        handler.Handle(9);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 2021-02-13
    相关资源
    最近更新 更多