c# - Windows Phone 8.1-Navegación de página
windows-phone-8 windows-phone-8.1 (4)
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
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 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 = "[email protected]";
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.