.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal

Home >> Articles >> Silverlight >> Post New Resource Bookmark and Share   

 Subscribe to Articles

Passing Values Between Pages in Silverlight 4

Posted By:Manas Patnaik       Posted Date: December 12, 2010    Points: 75    Category: Silverlight    URL: http://www.dotnetspark.com  

In this post we will look into some of the approaches available for Passing Values between Silverlight pages SL To SL page and ASPX To SL page .Typical approach of legacy web system is Query String , where parameters are passed as Field -Value Pair.

Navigation is an important and one of the basic aspect of web application . In earlier versions of Silverlight Navigation system was missing, until  Silverlight 3 .This blog post is all about the concept of Navigation Framework and an attempt to summarize the overall concept .[Check Online Demo of this post].

Basic Concept


  • The concept of Navigation system revolves around Frame . Frame Control acts as a container for pages , it validate the state and maintain the navigation history.
  • A Frame can host one page at particular time.
Manas Patnaik Blog
  • Source : Source property of Frame defines the default page to load when the application initialized.
  • Navigate (URI uri) :Navigate Method navigates to the specific URI from code.


  • Pages are the superset of controls which is capable of Navigation and allow it self to load inside a frame.
  • Manas Patnaik Blog
  • It is important to know the relation between Frame and Page.The above fig illustrate the relation between them.Frame is responsible for navigate to a particular page with the URI .Once page loaded it can access the host Navigation system by NavigationContext and NavigationService.
Step By Step with a Example

Create a Silverlight Application

  • Lets create a Silverlight Application from Visual Studio.As shown in fig we have added some pages to the Silverlight project.
Manas Patnaik Blog
  • The MainPage will load the content pages (In View Folder) with a click of navigation Hyperlinks.
Manas Patnaik Blog

Add Event Handler to Navigate

For the project XAMl code of the MainPage as follows .
    private void hlHome_Click(object sender, RoutedEventArgs e)
    this.frameContainer.Navigate(new Uri("/View/Home.xaml", UriKind.Relative ));

Add Error Page for Resource Not Found

private void frameContainer_NavigationFailed(object sender, System.Windows.Navigation.NavigationFailedEventArgs e)
e.Handled = true;
frameContainer.Navigate(new Uri("/View/ErrorPage.xaml", UriKind.Relative));

Navigation Through XAML

Instead of above coding approach  we can specify Hyperlink NavigateUri property to the their relative URIs .


Hiding Resources Through URI Mapper
  • Sometimes it is necessary to hide your resource location also the long URL for the particular page is not so user-friendly.So we can  use URIMAPPER to enable with short and meaning full name for URIs.Suppose for this example the user should be allowed  to navigate the Customers page with adding "/Customers" to the URL.To use URIMAPPING we need following 2 references to our mainpage.xaml page


  • Our Next step will be adding mapping to the Frame Control.

Now we need to set the Hyperlink  navigateURI. property as /"Customers ".So this will ensure that the "/Customer" is mapped to the mentioned MapeedUri.

Now ,Customers page can be accessible by the new User friendly URI. "http://localhost:6469/NavigationSystemTestPage.aspx#/Customers"
Accessing Navigation System from a Page
  • As we mentioned above a page can access navigation system using NavigationService. In this example we have a DashBoard page which required to be loaded once the user clicks on the button in the customers page. This can be achieved by through code behind in Customers page on button click event .
private void btnShowDashBoard_Click(object sender, RoutedEventArgs e)
NavigationService.Navigate(new Uri("/Admin/DashBoard.xaml", UriKind.Relative));

NavigationService allows the page to get the host navigation service that used to navigate to this page.

Manas Patnaik Blog
Final Words
Silverlight navigation support much more complex navigation logic such Fragmented Navigation ,Content loader etc..This post only touches the basics of navigation.More posts will follow soon about navigation and Silverlight .
Source Code
Download Source NavigationSystem
Online Demo

 Subscribe to Articles


Further Readings:


No response found. Be the first to respond this post

Post Comment

You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend