OK so I've been writing this application (see image below) using winforms for the last few months and I have decided to start to re-write it in WPF.

Winforms version:


As you can see, I basically use the TreeView on the left as the navigation menu, and when a node is clicked the related panel is loaded into the main part of the form. The way I'm doing this is by creating a UserControl for each of the sections of my app that each of the treenodes relate to, and then when a node is clicked I just remove all controls from the main container and then add a new instance of the necessary usercontrol. Probably not the most elegant solution but it works fine.

Now although I could probably get away with doing the same thing in WPF, I'm just wondering if anyone has any suggestions for a 'better' way to do this? I mean, does WPF have some navigation control that would be better suited to this than a TreeView? (I notice MDI is not supported in WPF so there goes that idea! :P ) And is there a better way than to just keep removing and adding usercontrols/panels for each of the sections?

Thanks
Chris