Windows Phone 8.1 – Navigation de page

Venant de Windows Phone 8 je n’avais jamais pensé que de nombreuses modifications seraient apscopes au code Windows Phone 8.1 . En gros, je me demandais comment faire pour naviguer dans les pages comme sur Windows Phone 8 . Pour ce faire, vous devez append:

 NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative)); 

mais ce code ne fonctionne pas pour Windows Phone 8.1 .

Quelqu’un pourrait m’aider avec ça? Si possible, fournissez des liens ou de la documentation sur toutes les nouvelles méthodes Windows Phone 8.1 .

Dans Windows Phone 8.1, la méthode de navigation entre les pages est la suivante:

 Frame.Navigate(typeof(SecondPage), param); 

Cela signifie que vous naviguerez vers ‘SecondPage’ et passerez ‘param’ (une classe basée sur object).

Si vous n’avez besoin de passer aucun paramètre, vous pouvez utiliser ceci:

 Frame.Navigate(typeof(SecondPage)); 

Vous pouvez trouver la documentation pour ce lien MSDN

Si vous souhaitez revenir en arrière, vous pouvez utiliser:

 if(this.Frame.CanGoBack) { this.Frame.GoBack(); } 

Si vous souhaitez revenir au clic ou au bouton de retour, vous devez remplacer l’événement hardwarebutton:

 HardwareButtons.BackPressed += HardwareButtons_BackPressed; void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { Frame rootFrame = Window.Current.Content as Frame; if(rootFrame != null && rootFrame.CanGoBack) { rootFrame.GoBack(); e.Handled = true; } } 

Assurez-vous de définir e.Handled sur true.

 // Navigation Without parameters this.Frame.Navigate(typeof(SecondPage)); // Navigation with parameters this.Frame.Navigate(typeof(SecondPage),MyParameters); 

Pour envoyer plusieurs parameters: Il est assez tardif pour répondre, mais peut aider quelqu’un. Vous pouvez créer une classe personnalisée, y définir vos parameters et envoyer son object en tant que paramètre à votre page cible.

Par exemple. Votre classe personnalisée:

 public class CustomDataClass { public ssortingng name; public ssortingng email; } CustomDataClass myData = new CustomDataClass(); myData.name = "abc"; myData.email = "[email protected]"; Frame.Navigate(typeof(SecondPage), myData); 

Et puis sur la page cible, vous pouvez récupérer dans OnNavigatedTo comme suit:

 protected override void OnNavigatedTo(NavigationEventArgs e) { CustomDataClass myData2 = e.Parameter as CustomDataClass; ssortingng name = myData2.name; ssortingng email = myData2.email; } 

J’espère que ça aide.