you can first try to make all three User controls as separate views and viewmodel
MainView.xmal -> MainViewModel
FirstView.xmal -> FirstViewModel
SecondView.xmal -> SecondViewModel
ThridView.xmal -> thirdViewModel
MainviewModel have
RelayCommand MainButtonClickEventHandler
for Mainview Button and bind with
Command="{Binding Path=MainButtonClickEventHandler}"
On execute of this command
var FirstV = new FirstView() { datacontext = FirstViewModel };
FirstView.Show();
// or Close MainView() if it required.
repeat same concept for second and third view and view model.