How to Pass data between Pages in Windows Phone ?

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 .

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 .

 

If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.

4 Responses

  1. Pingback: How to Pass data between Pages in Windows Phone ? | ProgramInDotnet
  2. 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);
    }

Leave a Reply