Shell Xamarin: local correto para registrar o roteamento de página?
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
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
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: