2012-01-10 5 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イベントハンドラが(ちょうど+=-=を使用)を2回割り当てられていないことを確認する必要があります。

もう1つの方法は、このコードをApp.xaml.csに移動することです。これは、PageTransitionCompletedのイベントが1つのページではなく、アプリ全体に関連しているため、私にとって最も意義があります。

関連する問題