0

如果我有这个模块结构:

ModuleA
      *View/View_A
      *Controller/ControllerA
ModuleB
      *View/View_B
      *ViewModel/ViewModel_B  (view model for View_B)
      *Controller/Controller_B 
  1. ControllerA 如何使用 UriQuery 在 View_A 内的区域中显示
    View_B

  2. controllerB 如何使用 UriQuery 在 View_A 内的区域中显示 View_B

  3. 哪个更适合在 View_A 的区域中显示 View_B

提前致谢

4

1 回答 1

0

我不确定我是否准确回答了你的问题。但我建议你看一下 Prism2.2 附带的 Sample project -> Quickstarts -> UI Composition -> View Injection。这使用 Unity,示例在 Silverlight 和 WPF 中。

这有如何显示来自不同模块的视图的示例。它不调用其他项目的控制器,而是调用演示者。

 IProjectsListPresenter projectsListPresenter = this.container.Resolve<IProjectsListPresenter>();
 projectsListPresenter.SetProjects(employee.EmployeeId);

 IRegionManager detailsRegionManager = detailsRegion.Add(detailsPresenter.View, employee.EmployeeId.ToString(CultureInfo.InvariantCulture), true);
 IRegion region = detailsRegionManager.Regions[RegionNames.TabRegion];
 region.Add(projectsListPresenter.View, "CurrentProjectsView");
 detailsRegion.Activate(detailsPresenter.View);

使用 activate 方法来激活视图。或者,如果是特定要求/需要导航,您可以将 detailsRegionManager.RequestNavigate 与 UriQuery 一起使用。(我没有尝试过请求导航自己:)

另外请查看此帖子

http://compositewpf.codeplex.com/discussions/402860#post940396

希望这可以帮助。

祝你好运!

于 2013-02-14T15:36:15.137 回答