从Model调用ViewModel相关代码

时间:2015-02-12 09:11:28

标签: c# wpf mvvm architecture

事情是,有时候Model应该通知ViewModel显示一个消息框。有时,模型应该更改ViewModel的状态。做这种通知的正确方法是什么?

是否有任何有用的模式或什么?

1 个答案:

答案 0 :(得分:1)

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

可能的替代方案:

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