In a Windows Phone 7 Silverlight application I call a new page using
NavigationService.Navigate(new Uri("/View/SecondPage.xaml", UriKind.Relative));
Now I want to pass parameters to the new page. I understand a simple parameter can be passed using:
NavigationService.Navigate(new Uri("/View/TilgungsratePage.xaml?id=4711", UriKind.Relative));
and read in the new page using
protected override void OnNavigatedTo(Microsoft.Phone.Navigation.PhoneNavigationEventArgs e)
{
base.OnNavigatedTo(e);
String id = NavigationContext.QueryString["id"];
}
For simple parameters this is ok, but how do I pass a list?
Complex objects?
Anything but simple values?
In his book "Programming Windows Phone 7" (chapter 6, section 3, "Sharing Data Among Pages") Charles Petzold recommends properties in the App
class (derived from Application
). Every page has access to it via Application.Current
. Also interesting is the dictionary PhoneApplicationService.Current.State
. It's usefull for tombstoning. The whole chapter maybe interesting for reading.