prism wpf:如何在一个区域中显示视图/模块

时间:2010-10-14 05:42:07

标签: wpf prism

我有一个带有一个区域的Shell类。我创建了一个模块,显示了一个办公室列表。当我选择其中一个办公室时,我想展示另一个模块,我想转移有关所选办公室的信息。 问题:

  • 什么是更好的:创建另一个模块或者可能只在现有的另一个视图中创建?
  • (如果我还想创建第二个模块),我该如何更改区域中的视图?请注意,我只有一个区域,所以我需要隐藏第一个模块的视图或卸载它。
  • 如果我想再向shell中添加一个区域怎么办?例如。每个模块必须包含2个视图并更改所有视图。

感谢。

1 个答案:

答案 0 :(得分:1)

我会尝试单独回答这些问题。

  1. 如果您要显示的信息与列表视图的信息相关(比如特定办公室的详细信息),则常见方法是在同一模块中创建另一个视图。这是因为这两种观点都与办公室有关并且分享了相关的问题,因此为它们设置一个单独的模块会带来更多痛苦而不是获益。
  2. 无论您是否决定创建第二个模块,如果您想在Shell中只有一个sinlge区域并且一次只显示一个视图,您必须使用一个ContentControl作为Region的主机。 SingleActiveRegion
  3. 如果要向Shell添加更多区域,只需添加更多控件并使用区域的RegionManager依赖项属性标记它们。许多Prism快速入门都证明了这一点。要在模块之间进行通信,只需使用EventAggregator
  4. 我希望这会有所帮助。