Оболочка Xamarin.Forms, как ввести несколько и разные значения в строку при навигации по маршруту - PullRequest
0 голосов
/ 24 октября 2019

Каким образом любое свойство может быть введено в страницу, по которой мы перемещаемся, используя Оболочка С нативной навигацией Xamarin это просто, так как вам нужно создать экземпляр типа страницы:

Navigation.PushAsync(new HomeViewPage { x = y });

В Shell только позволяет передавать строковые значения

Shell.Current.GoToAsync($"//home/bottomtab2?name={"Cat"}");

Я пытаюсь передать логическое значение, и оно показывает следующую ошибку: 'Объект типа' System.String 'не может быть преобразован в тип'System.Boolean'. '

Shell.Current.GoToAsync($"//home/bottomtab2?test={true}");

И если вы пытались отправить несколько параметров, ни один из отправленных параметров не работает, есть ли способ отправить несколько одновременно?

Shell.Current.GoToAsync($"//home/bottomtab2?name={"Cat"}?test={"Dog"}");

1 Ответ

0 голосов
/ 25 октября 2019

сначала, когда вы передаете значение в Route uri, несколько параметров должны быть связаны с &, а не ?, как

Shell.Current.GoToAsync($"//home/bottomtab2?name={"Cat"}&test={"Dog"}");

секунда, если вы хотите передать bool тип

Shell.Current.GoToAsync($"//home/bottomtab2?test={true}");

на вашей целевой странице, вы можете получить ее в виде строки, тогда она не выдаст ошибку, например:

[QueryProperty("Test", "test")]
public partial class AboutPage : ContentPage
{
 string test;
 public string Test
    {
        set =>test = Uri.UnescapeDataString(value); 
        get => test;

    }
}
...