【问题标题】:Prism CAG - WPF - New instance of Modules? Is it just cloning instances?Prism CAG - WPF - 模块的新实例?它只是克隆实例吗?
【发布时间】: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 中的概念。有一个将视图从模块加载到区域的概念,但我不确定这与您所说的有什么关系。

标签: wpf prism


【解决方案1】:

正如 Erik 解释的那样,加载模块和视图在 Prism 中是非常不同的概念。

以下线程在理解这一点并处理类似于问题中的场景时很有用:

我希望这是有用的。

谢谢, 达米安

【讨论】:

    猜你喜欢
    • 2011-01-12
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2014-11-22
    • 2021-07-23
    相关资源
    最近更新 更多