Если вы хотите показать разные UserControls в зависимости от контекста ваших данных, просто поймите следующую простую концепцию DataBinding и DataTemplate и углубитесь в нее.
Представьте, что вы получили свойство с именем CurrentViewModel, которое связывается с содержимым ContentControl внутри вашего окна
<Window ...
<ContentControl Content="{Binding CurrentViewModel}" />
</Window>
Теперь представьте, что у вас есть классы ViewModel ClassA и ClassB, поэтому соответствующим образом установите экземпляры в CurrentViewModel и определите глобальные DataTemplates (Views) для ваших классов
<DataTemplate DataType="{x:Type vm:ClassA}">
<local:UserControlForA../>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ClassB}">
<local:UserControlForB../>
</DataTemplate>
Теперь представление автоматически управляется из логики ViewModel, и WPF позаботится о том, чтобы отображать UserControl от Datatemplate.
Если вы не знакомы с MVVM, лучше воспользуйтесь этой статьей. http://msdn.microsoft.com/en-us/magazine/dd419663.aspx