我想从导航ModuleA View to ModuleB View。我怎样才能实现模块之间的导航?使用棱镜和Unity在不同模块中切换视图
在我的应用程序,它使用棱镜框架,我有两个模块
- ModuleA
- ModuleB
我配置我的引导程序两个模块是这样的:
protected override void ConfigureModuleCatalog()
{
base.ConfigureModuleCatalog();
ModuleCatalog moduleCatalog = (ModuleCatalog)this.ModuleCatalog;
moduleCatalog.AddModule(typeof(ModuleA));
moduleCatalog.AddModule(typeof(ModuleB));
}
注册我在我的ModuleA和ModuleB都浏览这样的:
public class ModuleA : IModule
{
private readonly IRegionManager regionManager;
private readonly IUnityContainer container;
public StaffModule(IUnityContainer container, IRegionManager regionManager)
{
this.container = container;
this.regionManager = regionManager;
}
public void Initialize()
{
this.regionManager.RegisterViewWithRegion("MainRegion",() => this.container.Resolve<StaffView>());
}
}
public class AccountModule : IModule
{
private readonly IRegionManager regionManager;
private readonly IUnityContainer container;
public AccountModule(IUnityContainer container, IRegionManager regionManager)
{
this.container = container;
this.regionManager = regionManager;
}
public void Initialize()
{
container.RegisterType<object, AccountView>("AccountView");
////this.regionManager.RegisterViewWithRegion("MainRegion",() => this.container.Resolve<AccountView>());
}
}
当我点击按钮从StaffView在ModuleA,我想转到AccountView in ModuleB。这是我的导航代码。
private void LodeViewfromModule()
{
IUnityContainer unityContainer = ServiceLocator.Current.GetInstance<IUnityContainer>();
var regionManager=unityContainer.Resolve<IRegionManager>();
var uri = new Uri("pack://application:,,,/PrismAuto.Account;component/AccountView.xaml", UriKind.RelativeOrAbsolute);
regionManager.RequestNavigate("MainRegion", uri);
}
但它显示:
System.Object的例外。
请大家帮我解决这个问题。
您是否尝试导航到'新的Uri(“AccountView”,UriKind.Relative)'?毕竟,你已经在这个“名字”下注册了它。 – Haukinger