La transmission de paramètres entre des pages XAML est un aspect fondamental d'une conception d'application efficace. Que vous parcouriez les pages d'une application Windows Phone, Silverlight, WPF ou Windows 8, comprendre les méthodes appropriées pour transmettre des données améliorera les fonctionnalités et l'expérience utilisateur de votre application.
Pour un transfert de données simple, la chaîne de requête peut être utilisée. Les données transmises via cette méthode doivent être converties en chaînes et codées en URL.
Page de navigation :
page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative));
Page de destination :
string parameter = string.Empty; if (NavigationContext.QueryString.TryGetValue("parameter", out parameter)) { this.label.Text = parameter; }
NavigationEventArgs permet d'accéder aux paramètres transmis via les appels de méthode pendant la navigation.
Page de navigation :
page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative)); // and ... protected override void OnNavigatedFrom(NavigationEventArgs e) { Page destinationPage = e.Content as Page; if (destinationPage != null) { destinationPage.PublicProperty = "String or object.."; } }
Page de destination :
// Use the value of "PublicProperty"..
La navigation manuelle permet aux paramètres personnalisés de passer par le constructeur.
Page de navigation :
page.NavigationService.Navigate(new Page("passing a string to the constructor"));
Page de destination :
public Page(string value) { // Use the value in the constructor... }
La distinction clé réside dans le cycle de vie de l'application. Les pages créées manuellement sont conservées en mémoire, contrairement aux pages parcourues via Uri.
Les méthodes 1 et 2 peuvent être utilisées pour transmettre des objets complexes, ou bien, des propriétés personnalisées peuvent être ajouté à la classe Application ou les données peuvent être stockées dans Application.Current.Properties.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!