如何在应用程序启动时预加载Prism视图?

时间:2011-03-22 09:37:21

标签: wpf view navigation preload prism-4

我们使用 Prism 4 for WPF 以及Prism附带的导航功能

在我们的应用程序中导航到(加载)某些视图时,我们注意到延迟 - 这可以理解地来自实例化视图及其依赖项,这包括从磁盘加载必要的程序集。

我们希望在应用程序启动时预加载这些视图,同时显示启动画面或类似内容。

有没有人做过类似的事情并想分享他们的经历?

2 个答案:

答案 0 :(得分:1)

我们还没有找到一个“干净”的解决方案来做到这一点。但这就是我们解决它的方式。

在bootstrapper函数InitializeShell()中,我们导航到我们想要预加载的所有视图。最后,我们导航到我们想要在主屏幕中显示的所有视图。

protected override void InitializeShell()
{
    base.InitializeShell();

    Application.Current.MainWindow = (MainShell) Shell;

    // Preload views
    // ---- Load (navigate to) all views here you want to have preloaded

    // Load actual default views
    // ---- Load (navigate to) the actual views for your "homescreen"

    // Finished loading now show the shell
    Application.Current.MainWindow.Show();
}

这不是一个理想的情况,如果您有很多观点,可以提供大量的维护工作。这对我来说很重要,但如果有人有更好的解决方案,我也很感兴趣。

答案 1 :(得分:0)

我不知道这是否有帮助,但我使用以下技巧: 1)将所有需要的程序集的引用添加到我的shell中 2)使用来自WPF toolkit

的忙碌指标