A common trick with VMs is to apply lazy-loading to your commands. What you do is
private RelayCommand loadCommand;
public RelayCommand LoadCommand
if (loadCommand == null)
loadCommand = new RelayCommand((o)=> LoadSomeViewExecute, new Predicate<object>(CanLoadExecute));
*pre-emptive celebratory nipple tassle jiggle* - Sean Ewington
WPF and Winforms are different programming languages and you should try and use only one or the other.
You can call one type in another, but it should only be for legacy systems and really not for any new application.