如何在另一个模块的视图中显示模块中的视图?

时间:2016-05-18 11:37:41

标签: c# unity-container prism

我实际上正在使用PRISM和Unity为一个项目工作,而且我遇到了模块之间交互的问题。

项目的架构看起来实际上是这样的:

App
 -AppModuleA (Layout)
 -AppModuleB
 -AppModuleC
 -AppModuleD

应用程序实际上看起来像这样:

Application's schema

如果我将模块添加到主区域,则会将其添加为窗格,因为mainregion是Infragistics的XamDockManager。它也会每次调用AppModuleA作为主要布局,因此它会多次实例化它。

我想要做的是实际上向AppModuleA的XamDockManager添加一个显示ContentPane的AppModuleB(或C或D)视图,我该如何设法做到这一点?

我阅读了PRISM教程there,但我没有找到如何做到这一点(即使第8部分说它可能)

  

此外,在由松散耦合的模块组成的复合应用程序中,视图通常将在单独的模块中定义。需要以不会在模块之间引入紧密耦合和依赖关系的方式识别单个视图。

任何帮助都会受到赞赏,如果您发现它还不够,请不要犹豫,向我询问更多信息。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

首先,我们需要澄清一些术语。您没有向您的地区添加模块。所以你不要将AppModuleA添加到你的mainregion。相反,您的应用程序会将模块加载到其应用程序域中,这样您就可以访问模块中的视图和逻辑。现在,您可以使用视图注入,视图发现或导航将视图注入区域。为了做到这一点,你的模块不必彼此了解。

对于碰巧包含区域本身的多个视图实例,您必须使用所谓的范围区域。

您应该观看这些课程,以帮助您更好地理解这些概念:

这些将为您提供完全了解您要构建的内容所需的知识。