Shell Xamarin: local correto para registrar o roteamento de página?

Nov 25 2020

Onde está o local correto para registrar a rota da página (que não é visível no menu flyout)?

Quando a página não está visível no menu flutuante, eu a adiciono ao método OnStart via App.xaml.cs

protected override void OnStart()
{
    Routing.RegisterRoute("RegisterPage", typeof(RegisterPage));
    Routing.RegisterRoute("LoginPage", typeof(LoginPage));
}

Quando a página está visível no menu flutuante, adiciono o roteamento de página como este

<FlyoutItem Title="Home" Icon="icon_home.png">
    <ShellContent Route="HomePage" ContentTemplate="{DataTemplate local:HomePage}" />
</FlyoutItem>

Respostas

1 JackHua-MSFT Nov 26 2020 at 15:19

Você deve registrar a rota antes de usá-la.

Do documento :

No construtor da subclasse Shell ou em qualquer outro local executado antes de uma rota ser chamada, as rotas adicionais podem ser registradas explicitamente para qualquer página que não esteja representada na hierarquia visual do Shell

1 Cfun Nov 26 2020 at 16:51

Conforme mencionado em meu comentário ontem da Shell . Navegação :

"No construtor da subclasse Shell ou em qualquer outro local executado antes de uma rota ser chamada, rotas adicionais podem ser registradas explicitamente para qualquer página que não esteja representada na hierarquia visual do Shell:"

Portanto, no final, depende da escolha pessoal , desde que seja registrado antes de ser invocado .

Questão relacionada

Erro? System.ArgumentException: 'incapaz de descobrir a rota para: