Windows Phone 8.1 – Navegación de página

Procedente de Windows Phone 8 , nunca pensé que se realizarían muchos cambios en el código de Windows Phone 8.1 . Básicamente me pregunto cómo hacer la navegación de la página al igual que cómo lo haría en Windows Phone 8 . Para hacer eso debes agregar:

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

pero ese código no funciona para Windows Phone 8.1 .

¿Puede alguien ayudarme con esto? Si es posible, proporcione enlaces o documentación sobre todos los nuevos métodos de Windows Phone 8.1 .

En Windows Phone 8.1, el método de navegación de página es como esto:

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

Significa que irás a ‘SecondPage’ y pasarás ‘param’ (una clase basada en el objeto).

Si no necesita pasar ningún parámetro, puede usar esto:

 Frame.Navigate(typeof(SecondPage)); 

Puede encontrar la documentación para este enlace de MSDN

En caso de que quiera regresar, puede usar:

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

Si desea volver al hacer clic en el botón Atrás, debe anular el evento del botón de hardware:

 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; } } 

Asegúrese de establecer e.Handled en verdadero.

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

Para enviar múltiples parámetros: Es bastante tarde para responder, pero podría ayudar a alguien. Puede crear una clase personalizada, establecer sus parámetros en ella y enviar su objeto como un parámetro a su página de destino.

Por ejemplo. Tu clase personalizada:

 public class CustomDataClass { public string name; public string email; } CustomDataClass myData = new CustomDataClass(); myData.name = "abc"; myData.email = "abc@hotmail.com"; Frame.Navigate(typeof(SecondPage), myData); 

Y luego en la página de destino puede recuperar en OnNavigatedTo una función como esta:

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

Espero eso ayude.