如果我有这个模块结构:
ModuleA
*View/View_A
*Controller/ControllerA
ModuleB
*View/View_B
*ViewModel/ViewModel_B (view model for View_B)
*Controller/Controller_B
ControllerA如何使用UriQuery在区域中显示View_B 在View_A
controllerB如何使用UriQuery在区域中显示View_B 在View_A
提前致谢
答案 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
希望这有帮助。
祝你好运!