C# 如何在Xamarin表单中的页面构造函数中从一个页面导航到另一个页面

C# 如何在Xamarin表单中的页面构造函数中从一个页面导航到另一个页面,c#,xamarin.forms,navigation,C#,Xamarin.forms,Navigation,我使用的是xamarin表单,我有一个场景,其中我有3个页面(内容页面)。 在第1页点击一个按钮,我需要转到第2页。在第2页中,检查一个标志以决定是保留在第2页还是重定向到第3页。我试图在第2页构造函数中执行此逻辑,但我的NavigationStack显示为空。请建议 第2页构造函数: public Page2() { InitializeComponent(); If(check==true) { Application.Current.MainPage =

我使用的是xamarin表单,我有一个场景,其中我有3个页面(内容页面)。 在第1页点击一个按钮,我需要转到第2页。在第2页中,检查一个标志以决定是保留在第2页还是重定向到第3页。我试图在第2页构造函数中执行此逻辑,但我的NavigationStack显示为空。请建议

第2页构造函数:

public Page2()
{
  InitializeComponent();
   If(check==true)
   {    
     Application.Current.MainPage = new NavigationPage(new Page3());
   }
}

您必须使用
PushAsync
方法才能不丢失上一个堆栈。。你所做的只是保持堆栈的最小大小(1页)。试试这段代码,但是你必须等待它,所以你最好不要用构造函数来做

await Application.Current.MainPage.NavigationPage.PushAsync(new NavigationPage(new Page3()));

在初始化数据时写入if条件

我不想在堆栈中维护多个页面,因为我的页面数据量很大。我刚遇到一件大事。用这个问题解决了。这个答案与所问的问题无关。
protected override void OnAppearing()
        {
            base.OnAppearing();
            viewModel.InitializeData();
        }