代码之家  ›  专栏  ›  技术社区  ›  Andrey Stukalin

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

  •  0
  • Andrey Stukalin  · 技术社区  · 14 年前

    我有一个有一个区域的shell类。我创建了一个模块,其中显示了一个办公室列表。当我选择其中一个办公室时,我想显示另一个模块,在该模块中我想传输有关所选办公室的信息。 问题:

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

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Damian Schenkelman    14 年前

    我将分别回答这些问题。

    1. 如果要显示的信息与列表视图的信息相关(例如特定办公室的详细信息),则常用的方法是在同一模块中创建另一个视图。这是因为这两个视图都与办公室相关,并且共享相关的关注点,因此为它们设置单独的模块会带来更多的痛苦而非收益。
    2. 无论您是否决定创建第二个模块,如果您希望在shell中只显示sinlge区域,并且一次只显示一个视图,则必须将用作区域主机的ContentControl用作 SingleActiveRegion .
    3. 如果要向shell中添加更多区域,只需添加更多控件,并使用区域的RegionManager依赖属性标记这些控件。许多棱镜快速启动程序都显示了这一点。要在模块之间进行通信,只需使用 EventAggregator .

    我希望这有帮助。