Clean实现显示MVVM ViewModel中的弹出错误消息

时间:2013-02-22 07:43:56

标签: wpf silverlight design-patterns mvvm messagebox

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

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

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

  1. 实施在IMessageBoxHelper中注册的界面DI Container。这需要我向我的Constructor添加另一个参数。我想避免拥有一个巨大的构造函数。
  2. 而不是调用MessageBoxHelper直接向我的EventAggregator发送消息,并实施MessageBoxListener作为单身人员捕捉这些Messages并展示他们。但这对我来说似乎有点过分了。
  3. 这些想法中的任何一个是正确的还是有另一种方式?

1 个答案:

答案 0 :(得分:3)

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