【发布时间】:2009-06-17 13:44:58
【问题描述】:
我正在使用 Prism 的 CAG 开发 WPF 应用程序。我想要实现的是创建模块(ModuleA)的新实例并将它们加载到 TabControl 中。 我能够使用 moduleInfo 对象实例化模块并通过 Assembly 加载它们并调用 CreateModule(type) 方法。
我实际上可以在 UI 中看到不同的模块,但问题是当我开始与不同的模块交互时(例如在作用域区域中加载或卸载视图),所有活动似乎只发生在最后加载的模块上。
所以例如我有 2 个 ModuleA 的“实例”作为 2 个 TabItems,它们都有用于 Load() 新视图的命令按钮。当我选择第一个模块(通过选择第一个 TabItem)并单击按钮加载视图时,视图将加载到第二个模块中。
有人知道如何解决这个问题吗?让我相信,即使我在 UI 上“看到”两个单独的模块,实际上只有一个实例或者 CreateModule 创建了克隆?
有人吗?感谢所有帮助!
【问题讨论】:
-
我认为存在一些术语混淆。模块(在 Prism 中)指的是(通常)装配边界。实际上并没有将模块加载到 UI 中的概念。有一个将视图从模块加载到区域的概念,但我不确定这与您所说的有什么关系。