使用Prism和Unity在不同模块中的视图之间切换

时间:2012-11-12 13:12:27

标签: prism unity-container

我正在用Prism 4和Unity制作概念WPF应用程序,但我遇到了一些基本问题。

在我们的解决方案中,我们有以下项目:

-AppName.Desktop
-AppName.Modules.ModuleA
-AppName.Modules.ModuleB

通过一些教程,探索了一些例子并搜索了互联网,我无法找到一个非常基本的问题的合适答案;如何在不同的DLL&#39> 中切换两个视图。

第一个视图(ModuleAView)在ModuleA的Initialize方法中加载:

public void Initialize()
{ 
    regionManager.RegisterViewWithRegion("MainRegion", typeof(Views.ModuleAView));
}

当我单击ModuleAView(或在ModuleAView中的按钮上)时,我想切换到ModuleBView。

public bool SomeEventInModuleAView(SomeEventParams e)
{
    Uri viewNav = new Uri("ModuleBView", UriKind.Absolute);
    regionManager.RequestNavigate(RegionNames.MainRegion, viewNav);
}

显然这不会起作用,因为ModuleA不知道在哪里可以找到ModuleBView。我已经阅读过有关使用pack / application / component等更改URI的信息,但我似乎无法使其正常工作。

我在想这样的事情:

Uri("pack://application:,,,/AppName.Modules.ModuleB;component/Views/ModuleBView.xaml",   UriKind.Absolute);

由于加载来自不同组件的模块是Prism的目的之一,我认为在Prism下载中没有任何示例来说明它是如何工作的,这很奇怪。

1 个答案:

答案 0 :(得分:3)

我找到了答案。我完全忘了注册第二个视图。

点击此处查看解决方案:http://compositewpf.codeplex.com/discussions/402860#post940396

相关问题