【问题标题】:MAUI project, cannot navigate to a new pageMAUI 项目,无法导航到新页面
【发布时间】:2022-03-15 00:05:00
【问题描述】:

我在 MAUI 中遇到了一个错误,我只是想知道我是唯一一个,还是我在这个新环境中做错了什么:)

在通过单击按钮导航到新页面时,我总是能够做到这一点:

private async void OnButtonClicked(object sender, EventArgs e)
       {
           await Navigation.PushAsync(new Page1());
       } 

但它似乎不再起作用了,这就是我的 Page1 在 C# 代码中的样子:

    public partial class Page1 : ContentPage
    {
        public Page1()
        {
           InitializeComponent();
        }

        protected override async void OnAppearing()
        {
            base.OnAppearing();

            await MainThread.InvokeOnMainThreadAsync(async () => { await LoadRecipes(); });
        }

        private async Task LoadRecipes() 
        {

           //no code yet
        }
    }
}

当我运行此代码并单击按钮时,没有任何反应。

【问题讨论】:

  • 你用NavigationPage包裹MainPage吗?像新的Window(new NavigationPage(new MainPage()));
  • 是的,我试过了,但不幸的是它没有用
  • 哪里可以解决这个问题?

标签: c# maui


【解决方案1】:

您可以在 ButtonClick 或 TapGestureRecongnizer 中使用它进行导航。

private void TapGestureRecognizer_Tapped_2(object sender, EventArgs e)
    {
        App.Current.MainPage = new NavigationPage(new Page1());

    }

或者在按钮中。

 private void Button_Clicked(object sender, EventArgs e)
    {
        App.Current.MainPage = new NavigationPage(new Page1());
    }

【讨论】:

  • 这总比没有好,但我使用它的问题是您无法使用导航窗格上的后退按钮返回上一页(至少在 Android 上)
【解决方案2】:

试试这个:首先在你的 App.xaml.cs 中

public partial class App : Application
{
    public App()
    {
        InitializeComponent();
        MainPage = new NavigationPage(new MainPage());
    }
}

然后在您的 MainPage 中,您可以做您想做的事情:

private async void btnNav_Clicked(object sender, EventArgs e)
{
    await Navigation.PushAsync(new Page1());
}

这应该可以工作并跟踪用户的导航,但在我面临的一些奇怪的情况下,这不是很好,但它是 Microsoft 在其入门指南中记录的解决方案。我想在他们的毛伊岛指南中查看有关导航的更多信息。

【讨论】:

    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-26
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    相关资源
    最近更新 更多