导航以及如何将视图注册到区域



我有两个视图,我想在单击按钮时在它们之间导航,它们在模块初始化时注册到一个区域,如下所示:

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");

        }

那么这两个视图都是不可见的,并且仅在单击按钮时可见,但我想在这种情况下它们没有在该地区注册。

对于导航,您需要注册用于导航的视图,然后导航到它们。

// register the view
container.RegisterTypeForNavigation<ViewA>();
// and some time later, show it in the region
regionManager.RequestNavigate( "TaxCalculatorRegion", "ViewA" );

如果改为将视图注册到某个区域,它将自动显示在该区域中(视图发现)。更详细的信息可在 Prism 文档中找到...

最新更新