2011-03-22 2 views
1

프리즘과 함께 제공되는 프리즘 4 (WPF)와 탐색 기능 ()을 사용합니다.응용 프로그램 시작시 프리즘 뷰를 미리로드하는 방법은 무엇입니까?

응용 프로그램에서 특정보기를 탐색 (로드) 할 때 지연이 발생합니다. 이는보기 및 해당 종속성을 인스턴스화하여 발생하는 것으로 알 수 있습니다. 여기에는 디스크에서 필요한 어셈블리를로드하는 작업이 포함됩니다.

스플래시 화면이나 비슷한 것을 표시하면서 응용 프로그램 시작시 이러한보기를 미리로드하고 싶습니다.

누구나 비슷한 일을하고 경험을 공유하고 싶습니까?

답변

1

아직 "깨끗한"해결책을 찾지 못했습니다. 하지만 이것이 우리가 해결 한 방법입니다.

부트 스트 래퍼 함수 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

에서 바쁜 지표를 사용 내가 마음에 가지고 있었던 것의 종류. 이것은 단기적인 해결책이지만, Prism 팀이 앞으로 문제에 대한 해결책을 제시 할 것이라는 희망이 항상 있습니다. –

+1

보기를 미리로드하는 책임을 맡을 수 있다면 좋을 것입니다. 초기화 도중 이전 시점에 뷰를로드/탐색하려고 시도 했습니까? 그렇지 않으면 오류가 발생합니까? –

+0

부트 스트랩의 초기 단계에서보기를 "미리로드"하려고 시도했지만 아직 일부 ViewModel을로드하지 않았으므로 Null 예외가 발생했습니다. –

0

는 나도 몰라,하지만 난 다음 기술 사용 : 내 껍질 2)에 1) 필요한 모든 어셈블리에 대한 참조를 추가를 즉 WPF toolkit