代码之家  ›  专栏  ›  技术社区  ›  Frasher Gray

导航页面。CurrentPage据说是Microsoft文档中NavigationPage类的公共属性,但在MAUI中无法识别

  •  -1
  • Frasher Gray  · 技术社区  · 1 年前

    我想查看哪一页 NavigationPage 目前正在运行,但Visual Studio表示没有的定义 CurrentPage 所有物它应该是根据 Microsoft's documentation ,但由于某种原因,它对我不起作用。

    我想完成的是下面这样的事情,第二页被转移到,然后 HopOverToOtherPage 在继续之前等待用户完成第二页。

    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }
    
        public async Task<string> HopOverToOtherPage()
        {
            await Navigation.PushAsync(new SecondPage());
            while (Navigation.CurrentPage != this)  //error is thrown here
            {
                await Task.Delay(3);
            }
            return SecondPage.StaticVariable;
        }
    }
    

    第二页跳回 await Navigation.PopAsync(); 当用户决定完成时。

    App.xaml.cs代码:

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

    然而,唯一有必要这样做的原因是

    await Navigation.PushAsync(new SecondPage());

    然后让调用HopOverToOtherPage函数的.blazor函数基于 SecondPage.StaticVariable 程序在继续之前不会停止并等待页面切换回来,从而使变量赋值过时且不准确。

    1 回复  |  直到 1 年前
        1
  •  2
  •   Gerald Versluis    1 年前

    Navigation 不是 NavigationPage ,是类型 INavigation 这使得导航成为可能。

    最简单,也许不是最优雅的解决方案是: ((NavigationPage)App.Current.MainPage).CurrentPage .

    既然你正在设置 MainPage 导航页面 你可以投掷它并到达 CurrentPage 属性。