我正在使用Prism 4.1编写一个复合应用程序,它使用TabControl
作为在应用程序主模式之间切换的方法。我现在只需导航到以TabControl
区域为目标的视图,就可以将视图加载到TabControl
作为单独的标签:
在我的Shell.xaml
:
<Window>
<Grid>
<TabControl prism:RegionManager.RegionName="TabRegion" />
</Grid>
</Window>
在我的Bootstrapper.cs
中,使用InitializeShell()
方法:
regionManager.Regions["TabRegion"].RequestNavigate("FirstTabView");
regionManager.Regions["TabRegion"].RequestNavigate("SecondTabView");
regionManager.Regions["TabRegion"].RequestNavigate("ThirdTabView");
但是,视图和(更重要的是)各自的ViewModel会在应用程序启动时立即实例化,而不是在选择视图选项卡时实例化。有没有办法将Prism配置为仅在激活其选项卡时加载视图?
我尝试在单独的模块中定义视图,并使用InitializationMode.OnDemand
参数加载模块,但这似乎没有任何效果;我假设这是因为RequestNavigate
方法足以激活模块。
任何想法都会非常感激!