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.