The general pattern to follow is this:
- Add a
ContentPresenter
to the place in your user interface which will host the switch-able content (the right panel of theDockPanel
in your case). - The visual representation of each switchable view will be represented by a user control.
- The data of each switch-able view will be represented by a viewModel.
- Bind the
Content
property of theContentPresenter
to a property in your view model that is of a viewModel type that represents the view E.G.BoundContent
. - When the link is clicked, your viewModel should react to this by changing the bound property and raising the
PropertyChanged
event to notify your view. - For each 'view' that can be switched you will need a
DataTemplate
that maps each user control to each viewModel.
Rachel Lims blog contains a couple of examples which demonstrates the above: