Я хочу поймать событие 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 страницы для его подключения)? Если нет, есть ли место между Initialized и Loaded, где я могу выполнить эту проводку?