我有两个视图,我想在按钮点击之间导航,它们在模块初始化的区域注册,如下所示:
public class ModuleTaxCalc : IModule //PRISM MODULE POWER
{
IUnityContainer container;
IRegionManager regionManager;
public ModuleTaxCalc(IUnityContainer container, IRegionManager regionManager)
{
this.container = container;
this.regionManager = regionManager;
}
public void Initialize()
{
container.RegisterType<ICustomer, Customer>();
//container.RegisterType<object, ViewA>("ViewA");
//container.RegisterType<object, ViewB>("ViewB");
regionManager.RegisterViewWithRegion("TaxCalculatorRegion", typeof(ViewA));
regionManager.RegisterViewWithRegion("TaxCalculatorRegion", typeof(ViewB));
}
}
我的问题是,当应用程序启动时,'ViewA'会自动显示/
如果我改为:
public void Initialize()
{
container.RegisterType<object, ViewA>("ViewA");
container.RegisterType<object, ViewB>("ViewB");
}
然后两个视图都是不可见的,只有在按钮点击时才会显示,但我想在这种情况下它们没有在区域中注册。
答案 0 :(得分:2)
要进行导航,您需要注册导航视图,然后导航到它们。
// register the view
container.RegisterTypeForNavigation<ViewA>();
// and some time later, show it in the region
regionManager.RequestNavigate( "TaxCalculatorRegion", "ViewA" );
如果您使用区域注册视图,它将自动显示在该区域中(View Discovery)。 Prism documentation ...
提供了更详细的信息