Поиск простого примера MVVM Light

Я пытаюсь изучить MVVM Light и ищу хороший базовый пример, который показывает модель и как загружать разные виды.

В шаблоне, который я вижу после загрузки MVVM Light, нет моделей и только одного вида. (Http://www.galasoft.ch/mvvm/creating/)

Другие вещи, которые я нашел, более сложны и немного запутывают, когда все, что я хочу увидеть, - это основы.

Спасибо.

Ответ 2

Я лично нашел, что они очень полезны, хотя они также используют MEF и RIA Services, которые могут усложнять ситуацию:

Образец приложения Silverlight 4 с использованием служб RIA MEF, MVVM и WCF

Архитектура Silverlight 4 с услугами RIA MEF и MVVM - Часть 1

В апреле автор инструмента MVVM Light сказал, что в конечном итоге он будет создавать ссылочное приложение как в Silverlight, так и в WPF. (Источник)

Вы можете найти эти другие вопросы полезными:

образцы инструментальных средств mvvm light

Пример приложения приложения wpf/silverlight mvvm

учебник mvvm от начала до конца

Ответ 3

Я нашел, что эти два очень полезны:

http://www.codeproject.com/KB/WPF/blendable_locator.aspx http://rickrat.wordpress.com/2011/01/24/using-mef-to-link-view-model-locator-and-load-assembly-uis-dynamically

first one - это просто класс drop-in viewModelLocator для MVVM Light, который дает вам возможности MEF.

[ExportViewModel("Demo1", false)]
class Demo1ViewModel : ViewModel
{   
}

И второй, использует тот же подход с дополнительным классом MefHelper, который позволяет загружать время загрузки компонентов MEF.

public void Compose()
{
AggregateCatalog Catalog = new AggregateCatalog();
// Add This assembly catalog parts
System.Reflection.Assembly ass = System.Reflection.Assembly.GetEntryAssembly();
Catalog.Catalogs.Add(new AssemblyCatalog(ass));

// Directory of catalog parts
if (System.IO.Directory.Exists(ExtensionsPath))
{
    Catalog.Catalogs.Add(new DirectoryCatalog(ExtensionsPath));
    string[] folders = System.IO.Directory.GetDirectories(ExtensionsPath);

    foreach (string folder in folders)
    {
        Catalog.Catalogs.Add(new DirectoryCatalog(folder));
    }

}

_Container = new CompositionContainer(Catalog);
}