Page.OnNavigatedFrom(NavigationEventArgs) メソッド

定義

Page がアンロードされた直後に呼び出され、親 Frame の現在のソースではなくなります。

protected:
 virtual void OnNavigatedFrom(NavigationEventArgs ^ e) = OnNavigatedFrom;
void OnNavigatedFrom(NavigationEventArgs const& e);
protected virtual void OnNavigatedFrom(NavigationEventArgs e);
function onNavigatedFrom(e)
Protected Overridable Sub OnNavigatedFrom (e As NavigationEventArgs)

パラメーター

e
NavigationEventArgs

コードをオーバーライドすることで調べることができるイベント データ。 イベント データは、現在の Page をアンロードしたナビゲーションを表 します

注釈

OnNavigatedFrom は、アプリ内のページ間を移動すると、既定で呼び出されます。 このメソッドをオーバーライドし、NavigationEventArgs からナビゲーションに関する情報を取得し、アプリに必要なアクションを実行できます。 ただし、特に中断時に Frame.GetNavigationState を呼び出すアプリでは、イベント ハンドラーの登録を解除したり、その他のクリーンアップを行ったりして、ページの状態を変更しないようにする必要があります。

中断中

ページ間を移動するときに呼び出されるだけでなく、Application.Suspending イベント ハンドラーで Frame.GetNavigationState が呼び出されると、アプリが中断されたときに OnNavigatedFrom メソッドが呼び出されます。

OnNavigatedFrom を使用して OnNavigatedTo に登録されたイベント ハンドラーの登録を解除するのは当然のようですが、アプリが中断時に状態を保存すると問題が発生する可能性があります。 中断時の状態の保存には、通常、Frame.GetNavigationState を呼び出し、現在のページで Page.OnNavigatedFrom を呼び出します。これにより、ページがバック ナビゲーションまたはリハイドレートで保持する状態を保持またはシリアル化するように通知されます。 アプリが一時停止され、再開された場合 (終了と再起動なしで)、OnNavigatedFrom で登録解除されたイベント ハンドラーは、再開時に Page.OnNavigatedTo が呼び出されないため、再登録されません。

この問題を回避するには、 OnNavigatingFrom または実際のナビゲーションでのみ呼び出 される Unloaded イベントを使用して、イベント ハンドラーの登録を解除し、その他のクリーンアップを行う必要があります。

適用対象