Provenir de Windows Phone 8
Je n'ai jamais pensé qu'il y aurait beaucoup de changements à apporter au Windows Phone 8.1
code. Fondamentalement, je me demande simplement comment faire la navigation dans les pages comme vous le feriez sur Windows Phone 8
. Pour ce faire, vous devez ajouter:
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 tous les nouveaux Windows Phone 8.1
méthodes.
Dans Windows Phone 8.1, la méthode de navigation des pages est la suivante:
Frame.Navigate(typeof(SecondPage), param);
Cela signifie que vous navagerez vers 'SecondPage' et passerez 'param' (une classe basée sur l'objet).
Si vous ne devez transmettre 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 sur le clic du 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 paramètres: il est assez tard pour répondre, mais cela pourrait aider quelqu'un. Vous pouvez créer une classe personnalisée, y définir vos paramètres et envoyer son objet en tant que paramètre à votre page cible.
Par exemple. Votre cours personnalisé:
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);
Et puis sur la page cible, vous pouvez récupérer dans OnNavigatedTo comme ceci:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
CustomDataClass myData2 = e.Parameter as CustomDataClass;
string name = myData2.name;
string email = myData2.email;
}
J'espère que ça aide.