The NavigationContext provides the QueryString collection which can be used in the destination page to get the data from the URL .
To Send the Data to the different form , the source page has to pass the parameters via URL
like Page2.xaml?name=senthil .
How to Pass data between Pages in Windows Phone ?
You can send multiple parameters with the help of the ampersand symbol like below
Page2.xaml?firstname=senthil&lastname=kumar
The Sample Program used for demonstration includes 2 pages where page1.xaml is the source and page2.xaml is the destination page
The Page1 has a textbox and a Button . On the button click event , the Navigate method of the NavigationService along with the parameter .
private void button1_Click(object sender, RoutedEventArgs e) { string urlWIthData = string.Format("/Page2.xaml?name={0}", txtName.Text); this.NavigationService.Navigate(new Uri(urlWIthData, UriKind.Relative)); }
In the Page2.xaml Page Loaded event , the parameter passed from the Page 1 is retreived .
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) { lblPage1Data.Text = this.NavigationContext.QueryString["name"].ToString(); }
When i attemped to retreive the parameter in the InitializeComponent() , i got the below error .
2 Comments
do it on
override protecter onnavigatedto
method
On the destination page , please override OnNavigatedTo as
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
string l = “”, lo = “”;
bool v1 = NavigationContext.QueryString.TryGetValue(“l”, out l);
bool v2 = NavigationContext.QueryString.TryGetValue(“lo”, out lo);
base.OnNavigatedTo(e);
}