我想從導航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