我注册了路由并在单击按钮后调用了方法,但转换到所需的页面不起作用。我是一个初学者,我真的不明白问题是什么。
路线登记:
namespace MuseumFinder;
public partial class AppShell : Shell
{
public AppShell()
{
InitializeComponent();
Routing.RegisterRoute(nameof(MainPage), typeof(MainPage));
Routing.RegisterRoute("MainPage/MuseumListPage", typeof(MuseumListPage));
}
}
方法调用:
namespace MuseumFinder;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void Button_Clicked(object sender, EventArgs e)
{
await Shell.Current.GoToAsync("//MainPage/MuseumListPage");
}
}
点击按钮后,会发生以下情况:
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="MuseumFinder.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:MuseumFinder.Views"
xmlns:searchHandlers="clr-namespace:MuseumFinder.SearchHandlers"
xmlns:local="clr-namespace:MuseumFinder"
Shell.FlyoutBehavior="Disabled">
<ShellContent
Title="Home"
ContentTemplate="{DataTemplate local:MainPage}"
Route="MainPage" />
</Shell>
1条答案
按热度按时间iibxawm41#
这里是:
与此相结合:
是个错误。不要两次定义路由。一次在XAML中,一次在XAML.CS中。
这是个错误在99.99%的情况下,你不会想要这样做。**nameof(MuseumListPage)**是正确的(通常的)路径。
分享你的应用程序构建器是个好主意。
“不工作”也是一种非常糟糕的描述方式。如果一切正常,你就不会在这里了。所以细节很重要。