Создание Mvvm Для Приложений Магазина Windows

Когда мы начали работать над приложениями для Windows 8, мы искали библиотеку для поддержки шаблона Model-View-ViewModel (MVVM) для этой платформы.

Мы провели некоторое время в Интернете в поисках такой, но в итоге смирились с тем, что таких библиотек пока не существует в природе (возможно, мы плохо искали, но сейчас это уже не так важно).

Ответ на вопрос «что делатьЭ» спросил себя.



Создание MVVM для приложений Магазина Windows

В недрах нашей компании EastBanc Technologies создана специальная библиотека (кодовое название ЕВТ.

Mvvm ).

Цель создания — экономия времени в будущем при разработке сложных приложений для Windows 8. В библиотеку вошли как наши собственные разработки, так и некоторые идеи и примеры, с которыми мы столкнулись в ходе поисков.

Итак, что имеем: все помнят, что основная идея шаблона — ослабить связь между ViewModel (назовем ее моделью представления) и самим View. В идеальном состоянии код программной части представления должен содержать только конструктор с InitializeComponent и, возможно, код для поддержки визуального поведения, которое невозможно определить с помощью XAML. Таким образом, разработчик отдает презентацию дизайнеру, а тот сосредотачивается на работе и тестировании логики приложения.

Данная статья ориентирована на разработчиков, уже знакомых с программированием на C# и XAML для Windows 8. Ниже мы приводим описания основных возможностей нашей библиотеки в виде примеров кода для их использования и комментариев.

Итак, поехали:



1. Базовый класс ViewModel
Первое, с чего нам нужно начать, говоря о шаблоне MVVM, — это базовый класс для наших моделей представлений.

Основная цель — поддержка интерфейса INotifyPropertyChanged и удобных функций автоматического уведомления при изменении свойств.

Пример использования:

  
   

public class SimpleViewModel : ViewModel { private int _number; public int Number { get { return _number; } set { OnPropertyChange(ref _number, value); } } }

Здесь все должно быть понятно без комментариев.

Стоит добавить, что существует набор перегруженных функций для автоматического оповещения при изменении свойства.

Существует также способ вообще избежать написания поля.

Имеется в виду так называемое резервное поле.

Примером может служить поле _number в приведенном выше примере кода.

В этом случае свойства можно продолжать создавать с поддержкой автоматического уведомления.

Это довольно удобно, если в модели представления у нас много свойств для привязки.

В примере ниже показано, как можно сделать свойство с учетом этой особенности (поля не требуются).



public string Text {

Теги: #windows 8 #библиотека #разработка приложений #XAML #C++ #разработка веб-сайтов

Вместе с данным постом часто просматривают: