我的WPF应用程序被组织为TabControl,每个选项卡包含不同的屏幕.
一个TabItem绑定到需要一点时间才能加载的数据.由于此TabItem表示用户可能很少使用的屏幕,因此我希望在用户选择选项卡之前不加载数据.
我怎样才能做到这一点?
我正在使用 Prism 4.1 编写一个复合应用程序,该应用程序使用 aTabControl作为在应用程序的主要模式之间切换的一种方式。我目前可以TabControl通过简单地导航到以该TabControl区域为目标的视图来将视图加载到单独的选项卡中:
在我的Shell.xaml:
<Window>
<Grid>
<TabControl prism:RegionManager.RegionName="TabRegion" />
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
在我Bootstrapper.cs的InitializeShell()方法中:
regionManager.Regions["TabRegion"].RequestNavigate("FirstTabView");
regionManager.Regions["TabRegion"].RequestNavigate("SecondTabView");
regionManager.Regions["TabRegion"].RequestNavigate("ThirdTabView");
Run Code Online (Sandbox Code Playgroud)
然而,当应用程序启动时,视图和(更重要的是)它们各自的 ViewModel 会立即实例化,而不是在选择视图的选项卡时。有没有办法将 Prism 配置为仅在其选项卡被激活时加载视图?
我尝试在单独的模块中定义视图,并使用InitializationMode.OnDemand参数加载模块,但这似乎没有任何效果;我假设这是因为该RequestNavigate方法足以激活模块。
任何想法将不胜感激!