【问题标题】:Clean Implementation showing popup Error messages in MVVM ViewModelClean Implementation 在 MVVM ViewModel 中显示弹出错误消息
【发布时间】:2013-02-07 18:40:35
【问题描述】:

我希望能够显示带有错误和警告的弹出窗口。这些来自我的ViewModel 和我的应用程序中的其他实用程序。
我有一个静态类 MessageBoxHelper 为我提供此功能。

我现在确实遇到了我的可测试性问题。如果我想验证失败记录我的测试触发MessageBox,我在我的测试中得到一个UI thead exception

我想实现一个干净的松散耦合系统,只需少量开销即可提供此功能。我已经提出了 2 个想法,但对我来说仍然有很多缺点:

  1. 实现在我的DI Container 中注册的接口IMessageBoxHelper。这需要我向我的Constructor 添加另一个参数。而且我想避免有一个巨大的构造函数。
  2. 而不是调用MessageBoxHelper 直接用我的EventAggregator 发送消息并实现MessageBoxListener 作为单例捕获这些Messages 并显示它们。但这对我来说似乎有点过度设计了。

这些想法是正确的还是有其他方法?

【问题讨论】:

    标签: wpf silverlight design-patterns mvvm messagebox


    【解决方案1】:

    如果您的视图模型依赖于能够显示消息框(例如IMessageBoxHelper),为什么不通过注入依赖项来使这一点变得明显呢?单元测试会很容易等。我认为选择解决方案 1 没有问题。

    【讨论】:

    • 我已经对其他服务接口有 4 个依赖项。我不应该尽量避免这种尺寸吗?
    • @Jeroen:五个依赖项听起来并不多。当然,如果您的视图模型过于臃肿且过于单一,您应该考虑重构它,但我怀疑情况是否如此。
    猜你喜欢
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 2018-11-09
    • 2020-08-26
    • 1970-01-01
    • 2010-12-31
    相关资源
    最近更新 更多