Comment transmettre des valeurs (paramètres) entre XAML pages?
Questions similaires ont été posées avant, mais cette question s'efforce d'explorer plus d'options et la possibilité de passer des objets complexes.
La question est de savoir comment passer des paramètres, mais il a vraiment besoin d'être divisé en trois parties..
- Lors de la navigation entre les pages d'une application XAML comment passer des paramètres?
- Quelle est la différence entre l'utilisation de l'Uri de la navigation et la navigation manuelle?
- Comment peut-objets (et pas seulement des chaînes) être transmis lors de l'utilisation d'Uri de navigation?
Exemple d'Uri navigation
page.NavigationService.Navigate(new Uri("/Views/Page.xaml", UriKind.Relative));
Exemple de manuel de navigation
page.NavigationService.Navigate(new Page());
La réponse à cette question s'applique à WP7, silverlight, WPF et Windows 8.
Remarque: Il existe une différence entre Silverlight et Windows8
- Windows Phone: les pages sont accédés à l'aide d'une Uri et des données passées comme une chaîne de requête ou d'une instance
- Windows 8: les pages sont navigué, en passant par le type et les paramètres comme des objets
Vous devez vous connecter pour publier un commentaire.
Méthodes pour passer des paramètres
1. À l'aide de la chaîne de requête
Vous pouvez passer des paramètres par le biais de la chaîne de requête, à l'aide de cette méthode, des moyens pour convertir vos données en chaînes et de les encoder. Vous devez l'utiliser uniquement pour passer de données simple.
Navigation dans la page:
Page de Destination:
2. À L'Aide De NavigationEventArgs
Navigation dans la page:
Page de Destination:
3. À l'aide de la navigation Manuelle
Navigation dans la page:
Page de Destination:
Différence entre Uri et de la navigation manuelle
Je pense que la principale différence ici, c'est le cycle de vie des applications. Les Pages créées manuellement sont conservés en mémoire pour la navigation raisons. Lire plus sur le sujet ici.
Passage d'objets complexes
Vous pouvez utiliser la méthode de l'une ou des deux à passer des objets complexes (recommandé). Vous pouvez également ajouter des propriétés personnalisées à l'
Application
de classe ou de stocker des données dansApplication.Current.Properties
.NavigationContext.QueryString.TryGetValue("parameter", out parameter)
doit être appelée à partir de l'intérieur de la méthode suivante:protected override void OnNavigatedTo(NavigationEventArgs e)