使用PRISM模块和MVVM的程序架构

时间:2011-10-31 13:39:17

标签: c# wpf prism

我不确定如何使用PRISM模块构建大型程序。

我创建了以下图层:

存储库 BusinessLayer - > IUnityContainer注册服务 UILayer - > MVVM已实现

如果我有3个模块,并且我在其中一个模块中有动作,如何触发另一个模块的视图加载?

我目前正在使用EventAggregator,但这需要以某种方式加载viewmodel,以便它可以加入到事件中。

理想情况下,我认为,我想做以下事情:

IOrderService服务= UnityContainer.Resolve(); service.PlaceOrder();

然后,订单服务负责加载相关的UI功能并将其注册到RegionManager。

这是正确的还是我完全错了?

由于

1 个答案:

答案 0 :(得分:1)

我实际上喜欢你的两种方法,但使用哪种方法实际上取决于你的要求。如果你想明确让一个模块告诉另一个模块做什么,那么服务定位器就是你要走的路。但是,这种方法倾向于在模块中引入一定程度的紧耦合。

如果更紧密的耦合不是您想要的(例如,当您添加需要处理动作的第四个模块时会发生什么?),那么事件聚合器可以让您更松散耦合。这种方法确实需要更严格和前期的工作来管理区域等,因为很容易导致一些有些无法管理的事件导致调试困难(我现在在项目中遇到了这个问题)。

有点模糊的回答,但我希望它有所帮助: - )

内特