【问题标题】:Understanding Modules in PRISM了解 PRISM 中的模块
【发布时间】:2017-02-16 03:34:39
【问题描述】:

我只是想确认一下我对 prism 模块的理解。

我的想法是一个模块可能包含许多功能和许多视图。

例如,我想创建包含以下功能的 UserManagement 模块,这些功能具有自己的主视图

特点
* 用户列表
* 用户更新
* 修改密码

我对 prism 模块的理解正确吗?我如何告诉模块管理器加载哪个功能?

还是我这一切都错了,每个模块只能有一个主视图?

【问题讨论】:

  • 所有最新的 Prism 文档都可以在这里找到:prismlibrary.readthedocs.io/en/latest。不要为 Prism 使用旧的 MSDN 文档,除非您使用的是旧版本。最新的稳定版本是 6.2。

标签: c# wpf prism-6


【解决方案1】:

我对 prism 模块的理解正确吗?

是的,Prism 中的模块只是一个松散耦合的功能单元,采用类库项目的形式,通常表示一组相关的关注点并包括相关组件的集合,例如视图、视图模型、模型和其他类。

您将在 UserManagement 模块中实现与应用程序中的用户管理相关的所有功能和 UI。您可以在 MSDN 上阅读更多相关信息:https://msdn.microsoft.com/en-us/library/gg405479(v=pandp.40).aspx

我如何告诉模块管理器加载哪个功能?

在 GitHub 上的 Prism 官方网站上有一堆代码示例:https://github.com/PrismLibrary/Prism-Samples-Wpf

HelloWorld 示例演示了如何加载模块:https://github.com/PrismLibrary/Prism-Samples-Wpf/blob/master/HelloWorld/HelloWorld/Bootstrapper.cs

还是我这一切都错了,每个模块只能有一个主视图?

不,一个模块当然可以包含多个视图。

【讨论】:

  • 我们必须在模块视图中指定区域吗?如果我希望模块视图加载到任何区域怎么办?
  • 该区域通常在 shell 窗口中定义。然后,您可以使用 RegisterViewWithRegion 方法将模块中的视图注册到该区域。我链接到的 HelloWorld 示例正是这样做的:github.com/PrismLibrary/Prism-Samples-Wpf/blob/master/….
  • 对,但是你必须让模块中的视图知道区域的名称。这意味着外壳必须具有为要加载的模块视图定义的区域。
  • 例如:_regionManager.RegisterViewWithRegion("MainRegion", typeof(ViewA));那条线在视图内。它要求 shell 定义一个“MainRegion”。如果我的 shell 想要它在“OtherRegion”中怎么办
  • 当然你必须知道你想在哪个特定区域注册你的视图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 2021-05-21
  • 2014-11-15
  • 1970-01-01
  • 2012-08-23
相关资源
最近更新 更多