【问题标题】:Changing Views Within a Prism Module?在 Prism 模块中更改视图?
【发布时间】:2011-01-02 04:38:57
【问题描述】:

所以我有一个 PRISM v2 (M-V-VM) 应用程序启动并运行。它是加载到选项卡控件中的 4 个模块。伟大的。 现在我的问题是——从这里去哪里?大多数教程似乎到此为止。

也许我想多了,但似乎我需要每个模块都成为自己的 PRISM 应用程序,但这是不对的。

请帮助 PRISM n00b 找出从这里到哪里去。

接下来我要做什么:每个选项卡(模块)都有自己的工具栏和按钮等。单击按钮应该会更改工具栏下方的内容(视图)。 如何使用 PRISM(正确)实现这一点?每个模块(选项卡)都应该控制其内容,但是,单击一个选项卡中的某些按钮可能会触发另一个选项卡中的事件(因此使用 PRISM)。

那么在模块内更改视图的正确 PRISM 方法是什么?

【问题讨论】:

    标签: prism prism-2


    【解决方案1】:

    我认为您正在考虑这个问题。我会解释的。

    通常所说的“Shell”应该包含您的所有导航控件。例如,如果我想要一个选项卡式 UI,我的 Shell 将包含一个选项卡控件(通常你会用一个 RegionName 来装饰那个 TabControl,比如“ShellTabs”)。

    您的模块将为这些 shell 元素提供视图。因此,假设您有电子邮件模块,它将为您的选项卡集合提供一个收件箱视图。它可以通过向应用程序的 RegionManager 注册这些视图来贡献这些视图(例如向名为“ShellTabs”的区域注册您的视图)。

    模块不必提供任何视觉效果。我的应用中有一个模块负责日志记录和其他后台进程。

    希望这可以澄清一些术语并帮助您了解每个部分的职责。

    【讨论】:

    • @Anderson:来自此评论““Shell”应该包含您所有的导航控件”...您是否建议将功能区控件及其相关选项卡/组/按钮之类的东西放在壳牌?
    • 我就是这样做的。 Ribbon Control 稍微复杂一点,因为它可以是上下文的,因此它可能需要比 IRegionManager 更多的工作和更全面的东西来注册视图。事实上,我不是 100% 确定 Ribbon 继承自什么,所以如果你想使用 RegionManager,你可能必须为它编写一个 RegionAdapter。如果你得到类似的东西,我想看看一个样本!
    • 这仅适用于您希望模块为导航控件本身(如功能区控件)做出贡献的情况。如果您希望一个模块实际提供整个功能区其内容,则不一定需要将该导航控件放入外壳中。不过,尤其是在功能区的情况下,我认为将其作为其他模块可以贡献的 Shell 资源包含在内会更加灵活。
    • 您介意我在名单外联系您以继续此对话吗?当功能区项目了解所有其他项目(模块)时,我发现最大的灵活性。你的评论证实了我的前进方向。 fwiw:我为 Ribbon 编写了 2 个适配器。一种用于在选项卡中添加区域(用于添加组):RibbonTabRegionAdapter : RegionAdapterBase。另一个用于功能区中的区域(用于添加选项卡): RibbonRegionAdapter : RegionAdapterBase.
    • 当然:anderson@theimes.com
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多