私は、Pivotを使ってたくさんのデータを表示するWP7 Silverlightアプリケーションを持っています。最初のプロジェクトを作成する場合は、Visual StudioのテンプレートはPAGE_LOADEDでViewModel.LoadDataを呼び出します。しかしViewModel.LoadDataを呼び出すタイミング
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
App.ViewModel.LoadData();
}
on MSDNそれはあなたがPAGE_LOADEDの代わりにOnNavigatedTo使用する必要があると言い、ページがアクティブになったときOnNavigatedToは一度だけ呼び出されるため、PAGE_LOADEDながら、項目がページのビジュアルツリーに追加されるたびに呼び出されます。 MSDNの記事は、Silverlight Windows Phoneの代わりにSilverlight 4用です。
あなたは、ナビゲーション要求を調べ、 表示のためにページを準備するためにOnNavigatedTo方法 をオーバーライドします。 の例では、要求された データを読み込み、視覚的な 要素を有効または無効にすることができます。
通常、Loadedイベントのイベントハンドラ を作成する代わりに、OnNavigatedTo メソッドを使用します。ページがアクティブになるたびに、 の1回だけ呼び出されるため、 OnNavigatedToメソッドが好ましい です。 Silverlightフレームワークでは、ビジュアルツリーに要素 が追加されるたびに Loadedイベントが発生します。 は、ページをアクティブにすると が2回以上発生する可能性があります。 OnNavigatedToメソッドは、ページが でキャッシュから取得された場合でも、各要求が に対して呼び出されます。 このメソッドコードには、 コンストラクタにコードを配置するよりも、それぞれの要求に対して を実行する必要があります。
Visual StudioピボットテンプレートがPage_LoadedでViewModel.LoadDataを呼び出す理由はありますか?
"ページのビジュアルツリーに項目が追加されるたびにPage_Loadedが呼び出されます。任意の参照? –
私は間違ったリンクを参照しました。 OnNavigatedToに関するMSDNの文書はhttp://msdn.microsoft.com/en-us/library/system.windows.controls.page.onnavigatedto(VS.95).aspx – Jim