WPF + MvvM + Prisma

Soy nuevo en el mundo de Wpf y Mvvm, pero he encontrado un par de ejemplos y acabo de encontrar que hay una forma diferente de crear instancias del modelo. Me gustaría saber la mejor / correcta forma de hacerlo. ambas formas están utilizando Unity

Lo que tengo foud:

var navigatorView = new MainView();
navigatorView.DataContext = m_Container.Resolve<INavigatorViewModel>();
m_RegionManager.Regions["NavigatorRegion"].Add(navigatorView);

Lo que hice:

var navigatorView = m_Container.Resolve<MainView>;
m_RegionManager.Regions["NavigatorRegion"].Add(navigatorView);

y cambié el constructor para recibir viewmodel para poder señalarle el contexto de datos:

public MainView(NavigatorViewModel navigatorViewModel)
{
 this.DataContext = navigatorViewModel;
}  

Otros ejemplos que he encontrado de otra manera como:

...vm = new viewmodel 
...m = new model
v.model = vm;

obtener / establecer DataContext

salud

Respuestas a la pregunta(2)

Su respuesta a la pregunta