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.
You should also look at MVVM pattern and the messenger class.
Here's some references:
MVVM Overview
MVVM Foundation Messenger
Good SO question on the messenger from MVVM Light
MVVM Light Blog
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With