# Navigation

**RadWizard** provides out of the box a basic sequential page navigation, which allows you to navigate through the pages linearly. With the help of **RadWizard's** events you can follow the state of the control at run time and implement custom pages sequence and page processing validation if necessary.

## Linear Navigation

**RadWizard’s** navigation is enabled by default and it allows you navigating through the pages in linear order. By default, pages will be visited in the order that they are defined in its **WizardPages** collection.

## Conditional Navigation

**RadWizard** provides the following events, which enable the implementation of conditional (not linear) navigation.

* **SelectionChanging**
* **SelectionChanged**
* **Previous**
* **Next**
* **Finish**
* **Help**
* **Cancel**

> For the full list of events refer to the [Events](https://www.telerik.com/products/wpf/documentation/controls/radwizard/events) article.

## SelectedPage

The **SelectedPage** property is of type **WizardPage** and gets or sets the currently selected page.

Here's an example of handling the **SelectionChanged** event using the **SelectedPage** property to jump to a particular page when a condition is met.

**Example 1: Jump to particular page**

```C#
private void RadWizard_SelectionChanged(object sender, SelectedPageChangedEventArgs e)
{
    if (e.NewPage == this.page2)
    {
        ((RadWizard)sender).SelectedPage = this.page3;
    }
}
```

```VB.NET
	Private Sub RadWizard_SelectionChanged(ByVal sender As Object, ByVal e As SelectedPageChangedEventArgs)
		If e.NewPage = Me.page2 Then
			DirectCast(sender, RadWizard).SelectedPage = Me.page3
		End If
	End Sub
```

## SelectedPageIndex

The **SelectedPageIndex** property is of type **int** and gets or sets the index of the currently selected page.

**Example 2** demonstrates how to use the **SelectedPageIndex** property in the **Finish** event to return to the starting page once the user clicks **Finish**.

**Example 2: Restart the wizard when the Finish button is clicked**

```C#
private void RadWizard_Finish(object sender, NavigationButtonsEventArgs e)
{
    ((RadWizard)sender).SelectedPageIndex = 0;
}
```

```VB.NET
	Private Sub RadWizard_Finish(ByVal sender As Object, ByVal e As NavigationButtonsEventArgs)
		DirectCast(sender, RadWizard).SelectedPageIndex = 0
	End Sub
```

## See Also

* [Events](https://www.telerik.com/products/wpf/documentation/controls/radwizard/events)
* [Wizard Pages](https://www.telerik.com/products/wpf/documentation/controls/radwizard/pages)
