MVVM Light & MEF Guia de início rápido

Eu só queria apresentar um guia de início rápido para transformar um novo projeto em um que use MEF / MVVM Light.

  • Instale o MVVM Light via NuGet.
  • Adicione um DataContexta todas as suas visualizações no Windowelemento XAML: ( Path=Maindeve ser o nome da propriedade em ViewModelLocator):
<Window DataContext="{Binding Source={StaticResource Locator}, Path=Main}">
  • Adicione as referências MEF ao seu projeto: clique com o botão direito em Referencessob seu projeto, clique Add Reference...e selecione tudo em System.ComponentModel.
  • Adicione uma [Export]tag em todos os seus modelos de visualização:
[Export]
public class MainViewModel : ViewModelBase
{
// ...
}
  • Em seu ViewModelLocatorconstrutor, crie um CompositionContainere obtenha seus modelos de visualização exportando-os a partir de:
public class ViewModelLocator
{
private CompositionContainer container;

public ViewModelLocator()
{
var catalog = new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly());
this.container = new CompositionContainer(catalog);
}

public MainViewModel Main
{
get
{
return this.container.GetExportedValue<MainViewModel>();
}
}
}