Export (0) Print
Expand All

NavigationService Class

Provides methods, properties, and events to support navigation within a Silverlight application.

System.Object
  System.Windows.Navigation.NavigationService

Namespace:  System.Windows.Navigation
Assembly:  System.Windows.Controls.Navigation (in System.Windows.Controls.Navigation.dll)

public sealed class NavigationService

The NavigationService type exposes the following members.

  NameDescription
Public propertyCanGoBackGets a value that indicates whether there is at least one entry in the back navigation history.
Public propertyCanGoForwardGets a value that indicates whether there is at least one entry in the forward navigation history.
Public propertyCurrentSourceGets the uniform resource identifier (URI) of the content that is currently displayed.
Public propertySourceGets or sets the uniform resource identifier (URI) of the current content or the content that is being navigated to.
Top

  NameDescription
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodGoBackNavigates to the most recent entry in the back navigation history, or throws an exception if no entry exists in back navigation.
Public methodGoForwardNavigates to the most recent entry in the forward navigation history, or throws an exception if no entry exists in forward navigation.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodNavigateNavigates to the content specified by the uniform resource identifier (URI).
Public methodRefreshReloads the current page.
Public methodStopLoadingStops asynchronous navigations that have not yet been processed.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Public eventFragmentNavigationOccurs when navigation to a content fragment begins.
Public eventNavigatedOccurs when the content that is being navigated to has been found and is available.
Public eventNavigatingOccurs when a new navigation is requested.
Public eventNavigationFailedOccurs when an error is encountered while navigating to the requested content.
Public eventNavigationStoppedOccurs when the StopLoading method is called, or when a new navigation is requested while the current navigation is in progress.
Top

You use the NavigationService class from within a Silverlight page. It enables you to access the navigation service used by the hosting frame and launch new navigation requests. You can retrieve the navigation service through the NavigationService property of the Page class.

When navigating from within the frame, you use the navigation methods on the frame. The Frame class contains many of the same methods and properties as the NavigationService class.

The following example shows a Silverlight page that retrieves data from a data service and displays that data. The page displays information about a product based on a value in the query string. The OnNavigatedTo method is overridden to obtain a query string value from the NavigationContext object. The NavigationService object for this page is accessed to determine if forward and back navigation is available.


public partial class ProductDetail : Page
{
    public ProductDetail()
    {
        InitializeComponent();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        GetProductDetail();
        SetButtonVisibility();
    }

    private void SetButtonVisibility()
    {
        if (NavigationService.CanGoBack)
        {
            BackNavButton.Visibility = Visibility.Visible;
        }
        else
        {
            BackNavButton.Visibility = Visibility.Collapsed;
        }

        if (NavigationService.CanGoForward)
        {
            ForwardNavButton.Visibility = Visibility.Visible;
        }
        else
        {
            ForwardNavButton.Visibility = Visibility.Collapsed;
        }
    }

    private void BackNavButton_Click(object sender, RoutedEventArgs e)
    {
        if (NavigationService.CanGoBack)
        {
            NavigationService.GoBack();
        }
    }

    private void ForwardNavButton_Click(object sender, RoutedEventArgs e)
    {
        if (NavigationService.CanGoForward)
        {
            NavigationService.GoForward();
        }
    }

    private void GetProductDetail()
    {
        string productID;
        DataServiceContext svcContext = 
            new DataServiceContext(new Uri("AdventureWorks.svc", UriKind.Relative));

        if (this.NavigationContext.QueryString.ContainsKey("ProductId"))
        {
            productID = this.NavigationContext.QueryString["ProductId"];
        }
        else
        {
            productID = App.Current.Resources["FeaturedProductID"].ToString();
        }

        svcContext.BeginExecute<Product>(new Uri("Product(" + productID + ")", 
            UriKind.Relative), loadProductCallback, svcContext);
    }

    private void loadProductCallback(IAsyncResult asyncResult)
    {
        DataServiceContext context = asyncResult.AsyncState as DataServiceContext;

        ListBox1.DataContext = context.EndExecute<Product>(asyncResult);
    }
}


Silverlight

Supported in: 5, 4, 3

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

ADD
Show:
© 2014 Microsoft