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..

  1. Lors de la navigation entre les pages d'une application XAML comment passer des paramètres?
  2. Quelle est la différence entre l'utilisation de l'Uri de la navigation et la navigation manuelle?
  3. 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