В Xamari.Forms я использую следующее объявление маршрута в AppShell.xaml :
<FlyoutItem Title = "Toolbox"
FlyoutDisplayOptions="AsMultipleItems"
Route="Main">
<ShellContent Title = "Toolbox"
ContentTemplate="{DataTemplate Views:Toolbox}"
Route="Toolbox"/>
</FlyoutItem>
<ShellContent Title = "Parameters"
ContentTemplate="{DataTemplate Views:Parameters}"
Route="Parameters"/>
В AppShell.xaml.cs добавляюпрограммно навигация по контекстной странице для страницы Toolbox :
public AppShell ()
{
InitializeComponent ();
Routing.RegisterRoute("Toolbox/TBOuvriers", typeof(TBOuvriers));
BindingContext = this;
}
Когда я пытаюсь отобразить навигацию по контекстной странице со страницы Toolbox: await Shell.Current.GoToAsync ("// Main / Toolbox / TBOuvriers");
Я получаю это исключение:
System.ArgumentException: неоднозначные маршруты соответствуют: // Main / Toolbox / TBOuvriers совпадений найдено:// Главная / Инструменты / TBOuvriers / TBOuvriers,// Главная / IMPL_Toolbox / Инструменты / TBOuvriersИмя параметра: uri
Непосредственно перед вызовом я вижу эти значения для переменных оболочки: Shell.Current.CurrentItem: "Title = Toolbox, Route = Main"Shell.Current.CurrentState.Location: "{// Main / Toolbox}"
Которые кажутся ожидаемыми.
Если я пытаюсь отобразить страницу с этим вызовом:
awaitShell.Current.GoToAsync ("TBOuvriers");
Я также получаю исключение: System.Exception: превышено время ожидания для получения сведений об исключении
Итак, в чем проблема?
Откуда берутся эти маршруты?!?
Почему страница Toolbox 2 раза регистрируется?
Все идеи приветствуются!
С уважением