Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Класс модели представления (View Model).

Читайте также:
  1. CРАВНЕНИЕ ИСТОРИИ И МОДЕЛИ
  2. DO Часть I. Моделирование образовательной среды
  3. EH-антенна и классическая электродинамика
  4. I. АНАЛИЗ МОДЕЛИ ГЛОБАЛИЗАЦИИ.
  5. I. Проверка вопроса, правомерность приобретения за счёт средств ТСЖ «На Гагринской» счётчиков учёта расхода холодной и горячей воды модели «Саяны-Т Ду-15».
  6. II. Классификация медицинских отходов
  7. II. Классификация медицинских отходов

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

Как правило, модель представления определяет команды или действия, которые могут быть представлены в UI и вызваны пользователем. Типичный примером является то, когда модель представления предоставляет команду Submit, которая позволяет пользователю передать данные веб-сервису или репозитарию данных. Представление может представить эту команду как кнопку так, чтобы пользователь мог нажать её для передачи данных. Как правило, когда команда становится недоступной, ее связанное представление UI становится отключенным. Команды дают способ инкапсулировать пользовательские действия и чисто отделить их от их визуального представления в UI.

В итоге, модель представления имеет следующие ключевые характеристики:

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

2. Модель представления обычно непосредственно не ссылается на представление. Она реализует свойства и команды, к которыми представление может привязать данные. Она уведомляет представление о любых изменениях состояния через события уведомления через интерфейсы INotifyPropertyChanged и INotifyCollectionChanged.

3. Модель представления координирует взаимодействие представления с моделью. Она может преобразовать или управлять данными так, чтобы они могли быть легко использованы представлением, и может реализовать дополнительные свойства, которые, возможно, не присутствуют в модели. Она может также реализовать валидацию данных через интерфейсы IDataErrorInfo или INotifyDataErrorInfo.

4. Модель представления может определить логические состояния, которые представление может визуально представить пользователю.

Представление или Модель Представления?

Часто определение того, где должна быть реализована определенная функциональность, не очевидно. Общее правило гласит: Что-либо касающееся определенного визуального отображения UI на экране и что может быть модернизировано позже (даже если вы в настоящий момент не планируете модернизировать это), должно войти в представление; что-либо, что важно для логического поведения приложения, должно войти в модель представления. Кроме того, так как у модели представления не должно быть никаких явно заданных знаний об определенных визуальных элементах в представлении, код, чтобы программно управлять визуальными элементами в пределах представления должен находиться в code-behind представления или инкапсулироваться в поведении. Точно так же код для получения или управления элементами данных, которые должны быть показаны в представлении посредством привязки данных, должен находиться в модели представления. Например, цвет выделения выбранного пункта в поле списка должен быть определен в представлении, но список элементов для отображения, и ссылка на выбранный пункт непосредственно, должны быть определены моделью представления.


Дата добавления: 2015-08-13; просмотров: 82 | Нарушение авторских прав


Читайте в этой же книге: Композиция элементов | Слабая связь | События | Команды | Команды и привязка к данным | Добавление триггеров к данным | Добавление триггеров к элементам управления | Если мы хотим получать извещения о нажатии любой кнопки в окне, достаточно просто вызвать метод | Триггер, который позволяет применять изменения, основанные на состоянии нескольких свойств. | Шаг 2. Использование нестандартных команд. |
<== предыдущая страница | следующая страница ==>
Класс представления (View).| Реализация INotifyCollectionChanged.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)