2012-01-10 3 views
2

안녕하세요 저는 방금 툼 스톤 (tombstoning)에서 돌아 왔을 때 제 응용 프로그램이 충돌하고 있음을 알았습니다. 내 페이지의 생성자 내부 문제는 여기를 대상으로 할 수 있었다 :삭제 표시에서 돌아 왔을 때 RootVisual이 null입니까?

RadPhoneApplicationFrame frame = App.Current.RootVisual as RadPhoneApplicationFrame; 
frame.PageTransitionCompleted += 
         new EventHandler<EventArgs>(frame_PageTransitionCompleted); 

매번 앱이 RootVisual null로 프레임을 설정하는 것입니다 재 활성화됩니다. 이 코드를 사용하기 전에 툼 스톤 작업이 완벽하게 작동하고 앱 전체에서 자유롭게 탐색 할 수 있었기 때문에 캐스팅 문제가 있는지 궁금합니다. 이 문제의 원인에 대한 아이디어가 있습니까? 아니면 주위에 작품?

답변

4

페이지 생성자에서이 코드를 페이지의 OnNavigatedTo 메서드 재정의로 옮겨야합니다. 이유는 RootVisual이 페이지가 생성 된 후 생성 된 이벤트 처리기 RootFrame.Navigated에 설정되어있는 것입니다 (이는 App.xaml.cs의 구현에 따라 다름). 물론

OnNavigatedTo 방법이 페이지에 대한 더 한번 runned 될 수 있기 때문에, 당신은 PageTransitionCompleted 이벤트 핸들러가 두 번 할당되지 않았는지 확인해야합니다 (바로 += 이전 -=를 사용).

또 다른 옵션은이 코드를 App.xaml.cs으로 옮기는 것입니다. 이것은 PageTransitionCompleted 이벤트가 하나의 페이지가 아닌 전체 앱과 관련되어 있기 때문에 나에게 가장 의미가 있습니다.