web-dev-qa-db-fra.com

Xamarin.Forms Navigation.PushAsync ne fonctionne pas dans ContentView

Je souhaite accéder à une autre page dans Xamarin Forms, mais cela ne fonctionne pas dans la vue Contenu. j'utilise 

attendez Navigation.PushAsync (new Page2 ());

Ce code ne donne aucune erreur et s'exécute correctement, mais il n'y a aucun effet sur la page. J'utilise également ce code dans la page de contenu et il fonctionne correctement mais ne fonctionne pas dans le cas de ContentView. Actuellement, j'utilise

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

et cela fonctionne bien dans ContentView. Mais je reçois un avertissement indiquant que "ParentView est obsolète à partir de la version 2.1.0. Veuillez utiliser Parent à la place.". Mais il n'y a pas de fonction comme

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

et cela donne une erreur de syntaxe. Alors, y a-t-il un autre moyen de naviguer vers une autre page en utilisant ContentView.

5
Amar Mathur

Si la MainPage de votre application est une NavigationPage, vous pouvez toujours appeler PushAsync() à partir de l'intérieur de votre application. Je vous recommande de vérifier que la variable MainPage est de type NavigationPage uniquement pour vous assurer de ne pas déclencher d'exception. Pour ce faire, utilisez simplement ces deux lignes:

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

la solution fournie par cvanbeek ne fonctionne pas avec le problème de mine mais je règle vous devez l’utiliser dans votre code c # le problème est que vous devez comprendre la hiérarchie du code, son fonctionnement utilisez-le pour passer à une autre page de la propriété ContentView .content

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

Profitez bien des gens :) 

2
Mr-Tc