我有一个WPF应用程序,我正在使用MVVM模式。
我为需要用户输入的操作激活了VM,因此需要从VM激活视图。
我已经开始将VM分成单独的组件/程序集,部分原因是我将它们视为单元可测试部分,部分原因是视图应该依赖于VM,而不是相反。但是当我需要打开一个窗口时,VM就不知道窗口了。
我发现所有介绍都将VM放在WPF / App组件中,从而消除了这个问题。
本文建议将它们保存在不同的图层中:http://waf.codeplex.com/wikipage?title=Architecture%20-%20Get%20The%20Big%20Picture&referringTitle=Home
在我看来,我有以下选择
将VM移至WPF / App程序集以允许VM直接访问Windows。
将视图的接口放在VM-assembly中,在WPF / App程序集中实现视图,并通过IOC或其他方式注册连接。
将来自VM的'请求'发送到某个机制/总线,路由请求(但是哪种机制!?例如Prism中的东西?!)
建议是什么?
感谢您提出任何意见,
丹麦安德斯