Silverlight Prism - 在模块之间成功登录/依赖之后加载模块

时间:2009-11-30 16:41:22

标签: c# silverlight silverlight-3.0 prism prism-2

我有一个Silverlight Prism应用程序,其中包含一个带登录控件的工具栏模块。我目前在Bootstrapper中的主区域中有一个模块设置为 InitializationMode.OnDemand ,并且可以在工具栏模块中成功登录后通过 ModuleManager.LoadModule()加载它。但是,这感觉不对,因为它基本上将工具栏模块与登录后加载的模块紧密耦合。

现在提出问题......这是最佳实践,还是应该从工具栏模块中提升 CompositePresentationEvent 并让shell加载适当的模块?还是有其他选择吗?我正在构建这个应用程序,试图更多地了解Prism,我想确保我尽可能地遵循最佳实践。

1 个答案:

答案 0 :(得分:1)

我更喜欢EventAggregator方法。我不喜欢一个模块了解另一个模块。最多,壳牌应该了解其他模块,但不应该像那样交谈。

由于这更像是一个shell责任,您是否考虑过将其烘焙到Shell本身?如果它们在逻辑上是相同的,除非您打算经常更换工具栏,否则没有太多理由将它们分开。我通常将菜单烘焙到shell中,并让Module通过像IMenuRegistry之类的服务为菜单做出贡献。只是一个建议。

相关问题