2

我有一条使用以下注册的路线

Routing.RegisterRoute("SchoolHome", typeof(SchoolHomePage));

我有一个包含学校列表的页面,当我点击一所学校时,它可以从 ViewModel 命令中很好地执行

Shell.Current.GoToAsync($"SchoolHome?schoolid={selectedSchool.Id}");

这是我的 SchoolHomePage.xaml.cs

[XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class SchoolHomePage : ContentPage
    {
        public SchoolHomePage()
        {
            InitializeComponent();
            BindingContext = new SchoolHomeViewModel();
        }
    }

这是 SchoolHomeViewModel.cs 的片段

[QueryProperty("School", "schoolid")]
    public class SchoolHomeViewModel : BaseViewModel
    {
        string school;
        public string School
        {
            get
            {
                return school;
            }
            set
            {
                SetProperty(ref school, Uri.UnescapeDataString(value));
            }
        }

因此,Shell 不会将我的 QueryProperty 映射到我的属性 School 并且页面不会导航。如果我将 QueryProperty 放在后面的 ContentPage 代码中并在那里设置 ViewModel 的 School 属性,它将传递值,但页面仍然无法导航。它只是停留在学校列表的页面上,而我刚刚点击的那所学校被选中了。

4

1 回答 1

-2

我发现了问题。我的视图模型中的属性有问题。一旦我修复它就可以了。

于 2019-08-28T13:29:01.887 回答