Xamarin.Forms Navigation.PushAsync在ContentView

时间:2017-11-16 23:55:38

标签: c# android xamarin xamarin.forms navigation

我想导航到Xamarin Forms中的其他页面,但它无法在Content View中使用。我正在使用

  

await Navigation.PushAsync(new Page2());

此代码未给出任何错误并成功运行,但对页面没有影响。我也在内容页面中使用此代码,它在那里正常工作,但在ContentView的情况下它不起作用。 目前我正在使用

  

await ParentView.Navigation.PushAsync(new Page2());

它在ContentView中运行良好。但我收到警告说,从版本2.1.0开始,#34; ParentView已经过时了。请改用Parent。"。但是没有像

那样的功能
  

await Parent.Navigation.PushAsync(new Page2());

它正在给出语法错误。那么,有没有其他方法可以使用ContentView导航到其他页面。

2 个答案:

答案 0 :(得分:6)

如果您的应用的MainPageNavigationPage,那么您始终可以从应用内部拨打PushAsync()。我建议您检查MainPage类型为NavigationPage,以确保您不会抛出强制转换异常。要做到这一点,只需使用以下两行:

if(App.Current.MainPage is NavigationPage)
    (App.Current.Mainpage as NavigationPage).PushAsync(new Page2());

答案 1 :(得分:2)

cvanbeek提供的解决方案不适用于我的问题,但我可以解决 您必须在C#代码中使用它 问题是您必须了解代码的层次结构 使用它可以移动到ContentView .content属性内的另一个页面

 ((App.Current.MainPage as MasterDetailPage).Detail as NavigationPage).Navigation.PushAsync(new page());

享受民俗:)