WPF FAQ - Navigation

How do I pass data between pages in a NavigationWindow ?

In most of the web based applications, there is a need to pass data between pages in order to perform specific tasks. Data can be passed between pages in the NavigationWindow using the overloads of the ‘Navigate()’ method in the ‘NavigationService’ class.

The following code snippet is used to pass data from one page to another.

[C#]

mypage newpage = new mypage();
window1.NavigationService.Navigate(newpage, empid);

For this to work, mypage class should contain a constructor defined as follows.

[C#]

public mypage(string empid)
{
	getempprofile(empid);
}
Permalink
How do I handle Back and Forward button click ?

Back and Forward button click can be handled using the ‘CommandBindings’ property of the ‘NavigationWindows’ class.

The following code snippet is used to handle the ’Back’ button click in a NavigationWindow.

[C#]

//after InitializeComponent()
navwindow1.CommandBindings.Add(new CommandBinding(NavigationCommands.BrowseForward, OnBrowseForward));

void OnBrowseBack(object sender, ExecutedRoutedEventArgs args)
{
MessageBox.Show('Back Button is Clicked');
}
Permalink
How to set content of a NavigationWindow ?

NavigationWindow is a window with the ability to navigate between pages. NavigationWindow is one of the navigators in WPF, the other being the Frame. A navigator is the one which supports navigation and navigation history. The highlight of a NavigationWindow is that it can have it’s content as any of the .NET Framework 3.0 objects or HTML contents. ‘Source’ property of the NavigationWindow can be used to set the content of the NavigationWindow.

[XAML]

<NavigationWindow x:Class='SampleTest.Window1'
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
    Name='window1'
    Height='300' Width='300' Source='http://www.google.com'>
Permalink