Wpf 在MVVM ViewModel中显示弹出错误消息的干净实现
我希望能够显示带有错误和警告的弹出窗口。这些源于我的Wpf 在MVVM ViewModel中显示弹出错误消息的干净实现,wpf,silverlight,design-patterns,mvvm,messagebox,Wpf,Silverlight,Design Patterns,Mvvm,Messagebox,我希望能够显示带有错误和警告的弹出窗口。这些源于我的ViewModel和我的应用程序中的其他实用程序。 我有一个静态类MessageBoxHelper,它为我提供了这个功能 我现在确实遇到了一个关于可测试性的问题。如果我想验证登录测试失败,则触发消息框,并在测试中得到UI-thead异常 我想实现一个松散耦合的系统,它是干净的,有一点开销来提供这个功能。我allready提出了两个想法,但对我来说还有很多缺点: 实现在myDI容器中注册的接口IMessageBoxHelper。这需要我向我的构造
ViewModel
和我的应用程序中的其他实用程序。我有一个静态类
MessageBoxHelper
,它为我提供了这个功能
我现在确实遇到了一个关于可测试性的问题。如果我想验证登录测试失败,则触发消息框
,并在测试中得到UI-thead异常
我想实现一个松散耦合的系统,它是干净的,有一点开销来提供这个功能。我allready提出了两个想法,但对我来说还有很多缺点:
DI容器中注册的接口IMessageBoxHelper
。这需要我向我的构造函数添加另一个参数。我想避免有一个巨大的构造器
MessageBoxHelper
直接使用我的EventAggregator
发送消息,并将MessageBoxListener
实现为捕获这些消息并显示它们的单例。但这对我来说似乎有点过头了
这些想法是对的还是有其他方法?如果视图模型依赖于能够显示消息框(例如,
IMessageBoxHelper
),为什么不通过注入依赖项来让这一点变得明显?单元测试将很容易,等等。我认为选择解决方案1没有问题。I allready对其他服务接口有4个依赖项。我不应该试着避免这种尺寸吗?@Jeroen:Five dependencies听起来不多。当然,如果你的视图模型臃肿和单一,你应该考虑重构它,但我怀疑情况是这样的。