Xamarin Shell: prawidłowe miejsce do zarejestrowania routingu stron?

Nov 25 2020

Gdzie jest prawidłowe miejsce do zarejestrowania trasy strony (nie jest to widoczne w wysuwanym menu)?

Gdy strona nie jest widoczna w menu wysuwanym, dodaję ją do metody OnStart poprzez App.xaml.cs

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

Gdy strona jest widoczna w menu wysuwanym, dodaję takie trasowanie stron

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

Odpowiedzi

1 JackHua-MSFT Nov 26 2020 at 15:19

Przed skorzystaniem z niej należy zarejestrować trasę.

Z dokumentu :

W konstruktorze podklasy Shell lub dowolnej innej lokalizacji, która jest uruchamiana przed wywołaniem trasy, dodatkowe trasy mogą być jawnie rejestrowane dla wszystkich stron, które nie są reprezentowane w hierarchii wizualnej powłoki

1 Cfun Nov 26 2020 at 16:51

Jak wspomniałem w moim wczorajszym komentarzu z Shell.Navigation :

„W konstruktorze podklasy Shell lub w dowolnej innej lokalizacji, która jest uruchamiana przed wywołaniem trasy, dodatkowe trasy można jawnie zarejestrować dla wszystkich stron, które nie są reprezentowane w hierarchii wizualnej powłoki:”

Ostatecznie zależy to od osobistego wyboru, o ile zostanie zarejestrowane przed wywołaniem .

Powiązane pytanie

Pluskwa? System.ArgumentException: „nie można znaleźć trasy dla: