我有一条使用以下地址注册的路由
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属性,它将传递值,但页面仍无法导航。它只是停留在列出学校列表的页面上,而我刚刚选择的学校就被选中了。
答案 0 :(得分:0)
我发现了问题。我的视图模型中的一个属性有问题。一旦我修复了它的作用。