ユーザーが前方にナビゲートできないように、私のページからNavigationService.Navigatingイベントをキャッチしたいと思います。私はイベントハンドラを定義しています:NavigationServiceはいつ初期化されますか?
void PreventForwardNavigation(object sender, NavigatingCancelEventArgs e)
{
if (e.NavigationMode == NavigationMode.Forward)
{
e.Cancel = true;
}
}
...それはうまくいきます。しかし、私はこのコードを配置する場所を正確にわからない午前:私はページ、または初期化イベントハンドラのコンストラクタに配置した場合、その後のNavigationServiceはまだnullで、私はとNullReferenceExceptionを取得
NavigationService.Navigating += PreventForwardNavigation;
。しかし、ページのLoadedイベントハンドラに配置すると、ページがナビゲートされるたびに呼び出されます。私が正しいことを理解すれば、それは同じイベントを何回も処理していることを意味します。
私は同じイベントハンドラを複数回追加しても構いません(ページのLoadedイベントを使用するのと同じように)そうでない場合は、この配線を行うことができる初期化済みとロード済みの間にいくつかの場所がありますか?