Xamarin.Forms Shell 如何在路由导航中向字符串注入多个不同的值

Xamarin.Forms Shell how to inject multiple and different values ​to string in route navigation

如何将任何 属性 注入我们使用 Shell 导航的页面使用 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}");

如果您尝试发送多个参数,none 个发送的参数有效,有没有办法同时发送多个?

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

首先在Route uri中传递值时,多个参数需要连接&而不是?

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

second if you want to pass a bool type

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;

    }
}