Удобство использования MVVM WPF

Добавлено пользователем 21.02.2016

MVVM WPFМVVM удобно использовать вместо MVC в случаях, если в платформе присутствует «связывание данных». В MVC/MVP изменения в интерфейсе не повлияют на модель, так как сначала проходят через Контроллер/Presenter. В технологии WPF существует «связывание данных» т. е. данные связываются с визуальными элементами. Основная MVVM Pattern’а – отделения View, от логики, происходящей в рамках формы выполнить «связывание данных». Паттерн MVVM состоит из трех частей: • Модель (Model) – данные, которые необходимые для функционирования приложения. • Вид/Представление (View) — это по сути сам интерфейс, то есть кнопки, окно и. т.п. • Представление модели (ViewModel, что означает «Model of View») – это обертка данных, которые подлежат связыванию из Модели.

Для того чтобы все было понятно, напишем по шаблону MVVM WPF приложение. После, того как был создан пустой WPF проект, дерево решений будет выглядит так: В него добавим 3 папки: Model, View и ViewModel. В папку View поместим одни только формы – перенесем туда главную форму.

Теперь изменим namespace и имя класса у этой формы. В файле App.xaml содержится путь к форме, который необходимо изменить. Она по умолчанию запускается при старте программы. Теперь приложение должно запуститься. Теперь в проект добавим модель.

Далее нужно создать связующее звено между моделью и формой. Это будет MainWindowViewModel, где будет свойство модели. Для того, форма брала данные из ViewModel, необходимо указать форме какой объект будет являться для нее ViewModel’лью и поместить ссылку на нее DataContext формы, и изменим немного App. xaml. cs и App. xaml: Убираем из разметки форму, которая запускается по умолчанию, и прописываем в конструкторе создание формы, и привязываем к определенным свойствам модели элементы на форме. Таким образом мы связываем все элементы формы к модели при помощи ViewModel: При запуске приложения на форме появятся данные, которые в конструкторе MainViewModel были проинициализированы.

При изменении текста любом TextBox’е в первого столбце, изменится значение TextBox’а напротив Теперь привяжем команду у кнопки к MainViewModel. Для этого добавляем свойство команды в MainViewModel. Это минимум, который необходимо выполнить для написания WPF приложения по шаблону MVVM. Кажется, что это сложно и не удобно, но там, где отображается и обрабатывается большой объем данных, это делает код гораздо проще и минимизирует ошибки.

Похожие посты:

Что из себя представляет DataGrid WPF
Как использовать wpf listbox
Способы создания WPF анимации