Quando o NavigationService é inicializado?

Quero capturar o evento NavigationService.Navigating da minha página, para impedir que o usuário navegue para frente. Eu tenho um manipulador de eventos definido assim:

void PreventForwardNavigation(object sender, NavigatingCancelEventArgs e)
{
    if (e.NavigationMode == NavigationMode.Forward)
    {
        e.Cancel = true;
    }
}

... e isso funciona bem. No entanto, não tenho certeza exatamente onde colocar esse código:

NavigationService.Navigating += PreventForwardNavigation;

Se eu colocá-lo no construtor da página ou no manipulador de eventos inicializado, o NavigationService ainda é nulo e recebo uma NullReferenceException. No entanto, se eu o colocar no manipulador de eventos Loaded da página, ele será chamado toda vez que a página for navegada. Se eu entendi direito, isso significa que estou lidando com o mesmo evento várias vezes.

Posso adicionar o mesmo manipulador ao evento várias vezes (como aconteceria se eu usasse o evento Loaded da página para conectá-lo)? Caso contrário, existe algum lugar entre Inicializado e Carregado onde eu posso fazer essa fiação?

questionAnswers(2)

yourAnswerToTheQuestion