Как предварительно загрузить виды Prism при запуске приложения? - PullRequest
1 голос
/ 22 марта 2011

Мы используем Prism 4 для WPF , а также функциональность навигации , которая поставляется с Prism.

При переходе к (загрузке) определенных представлений в нашем приложении мы замечаем задержку, которая, естественно, связана с созданием экземпляра представления и его зависимостей, включая загрузку необходимых сборок с диска.

Мы хотели бы предварительно загрузить эти представления при запуске приложения, показывая заставку или что-то подобное.

Кто-нибудь делал что-то подобное и хотел бы поделиться своим опытом?

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Мы еще не нашли «чистого» решения для этого.Но вот как мы решили это.

В функции начальной загрузки 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();
}

Это не идеальная ситуация и может дать много работ по обслуживанию, если у вас много просмотров.Это делает работу для меня, но мне также интересно, есть ли у кого-нибудь лучшее решение.

0 голосов
/ 11 июня 2011

Я не знаю, может ли это помочь или нет, но я использую следующие методы: 1) добавить ссылку на все необходимые сборки в мою оболочку 2) использовать индикатор занятости из WPF toolkit

...