Как добавить параметр запроса маршрута к элементу ShellContent в приложении Xamarin Forms - PullRequest
0 голосов
/ 17 июня 2020

У меня есть ContentPage со списком запросов на покупку. Я пытаюсь добавить визуальную иерархию Flyout в AppShell.xaml. Навигация должна иметь элементы, которые будут переходить на ту же страницу, но должны передавать параметр запроса, который затем страница будет использовать для фильтрации данных на странице. Атрибут маршрута должен выглядеть примерно так Route="purchase-requests?filter=for-me".

Проблема, с которой я столкнулся, заключается в том, что приложение не работает с «невозможно определить маршрут для: // fusion / IMPL_purchase-requests? Filter = for-me / Purchase-requests? Filter = for-me / "когда я запускаю его.

Более полный пример, показывающий, что мне нужно.

<FlyoutItem Title="Fusion" 
            Route="fusion"
            FlyoutDisplayOptions="AsMultipleItems">
    <ShellContent Title="Waiting (for me)"
                  Route="purchase-requests?filter=for-me"
                  ContentTemplate="{DataTemplate local:PurchaseRequestsPage}" />
    <ShellContent Title="Waiting (by me)"
                  Route="purchase-requests?filter=by-me"
                  ContentTemplate="{DataTemplate local:PurchaseRequestsPage}" />
</FlyoutItem>

1 Ответ

0 голосов
/ 18 июня 2020

Обновление:

Зарегистрируйте маршруты:

 void RegisterRoutes()
    {
        routes.Add("monkeydetails", typeof(MonkeyDetailPage));
        routes.Add("beardetails", typeof(BearDetailPage));
        routes.Add("catdetails", typeof(CatDetailPage));
        routes.Add("dogdetails", typeof(DogDetailPage));
        routes.Add("elephantdetails", typeof(ElephantDetailPage));

        foreach (var item in routes)
        {
            Routing.RegisterRoute(item.Key, item.Value);
        }
    }

Затем перейдите на другую страницу с параметрами маршрута.

            ShellNavigationState state = Shell.Current.CurrentState;
        await Shell.Current.GoToAsync($"{state.Location}/{destinationRoute}?name={animalName}");
        Shell.Current.FlyoutIsPresented = false;

Вы можете скачать исходный файл по ссылке ниже. https://docs.microsoft.com/en-us/samples/xamarin/xamarin-forms-samples/userinterface-xaminals/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...