I finished the implementation like Josh Smiths; However, I simplified the situation a bit.
All views are usercontrols except MainWindow. MainWindow contains a ContentTemplate that is bound to a property that contains a link to a single UserControl in the view model. Then I have the ApplicationController responsible for managing the life cycle of the view and view of the model. The base ViewModel class used by each view contains a reference to IApplicationController. Then, MainWindowViewModel calls ApplicationController calls to load a new view, etc.
However, 100% of this approach would welcome any further suggestions.
Paulp source share