Шаблон MVVM

05.08.2014 at 05:25

Шаблон MVVM преследует ту же цель, что и популярный шаблон MVC – разделение представления и данных. Ключевое отличие – использование особеностей WPF, которые позволяют сделать части программы более независимыми.

Шаблон MVVM (Model – View – ViewModel) делит программу на три части:

  • Модель (Model) – непосредственно данные приложения. Здесь находятся классы данных, бизнес логика, взаимодействие с базой данных и т.д. Модель тоже должна разбиваться на логичекие слои, но это паттерн MVVM никак не регулирует.
  • Представление (View) – отвечает за отображение пользовательского интерфейса. В этой части находится разметка интерфейса.
  • Модель представления (ViewModel) – связывает представление и модель. В этой части происходит связывание элементов интерфейса с данными и обработка действий пользователя, влияющих на данные. Т.е. действие по добавлению новой записи – здесь. Действие по перемещению кнопок на тулбаре – в представлении.

Взаимодействие View и ViewModel использует следующие возможности WPF

Привязка данных

ViewModel является контекстом данных для View. Благодаря привязке данных, модель представления не нуждается в коде, который обновляет представление при изменении данных.

Команды

Для выполнения операций над отображаемыми данными ViewModel предоставляет свойства типа ICommand, на которые биндятся контроли представления.

Шаблоны данных

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

Связи между частями

  • Модель не знает ни про представление, ни про модель представления
  • Модель представления знает про модель
  • Представление знает про модель представления.
Tags: