Prism-MEF:如何使用UriQuey导航到不同模块中查看

时间:2013-02-14 07:42:55

标签: prism mef

如果我有这个模块结构:

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_B 在View_A

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

  3. 最适合在View_A
  4. 的区域中显示View_B

    提前致谢

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全回答了你的问题。但我建议你看一下Prism2.2附带的Sample项目 - >快速入门 - > UI组合 - >查看注射。这使用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

希望这有帮助。

祝你好运!