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