Поделиться через


Реагирование на изменения и их распространение

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

В этом подразделе

Как директива, рассмотрим эти методы в следующем порядке:

Способ

Сценарии

Дополнительные сведения

Укажите вычисленное свойство домена.

Свойство домена, значение которого вычисляется на основе других свойств в модели.Например, цена, сумма цен связанных элементов.

Вычисляемые и пользовательские свойства хранилища

Определите пользовательское свойство домена хранения.

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

Вычисляемые и пользовательские свойства хранилища

Обработчики изменений переопределения, как OnValueChanging и OnDeleting

Сохранять различные элементы в синхронизации, и сохранять внешние значения в синхронизации с моделью.

Ограничьте значения с указанным диапазонам.

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

Обработчики изменений значений свойств доменов

Правила

Можно определить правила, которые в очереди для выполнения только до окончания транзакции, в которой произошло изменение.Они не выполняются в откате или повторе.Используйте их для хранения одну часть хранилища в synch с другими.

Правила распространяют изменения в пределах модели

Храните события

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

Обработчики событий распространяют изменения за пределы модели

События платформы .NET

Фигуры имеют обработчики событий, которые отвечают на щелчок кнопкой мыши и другие жестам.Необходимо зарегистрировать для этих событий для каждого объекта.Регистрация обычно выполняется в переопределенном методе InitializeInstanceResources и должна выполняться для каждого элемента.

Эти события обычно используются вне транзакции.

Практическое руководство. Перехват щелчка фигуры или декоратора

Правила границ

Правило границ используется в частности ограничить границ фигур.

Класс BoundsRules ограничивает расположение и размеры фигур

Правила выбора

Правила, ограничивающие выделения в частности, что пользователь может выбрать.

Практическое руководство. Предоставление и ограничение доступа к текущему выделению

OnAssocatedPropertyChanged

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

Обновление фигур и соединителей в соответствии с моделью

Сравнение правила и события хранилища

Измените notifiers, правила и события, выполняются при возникновении изменений в модели.

Правила обычно примененная в конце транзакции, в которой произошло изменение и события применяются после изменения в транзакции зафиксированы.

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

  • Создание настраиваемых правил Пользовательское правило создается как производный класс от абстрактного правила.Также следует уведомить границы о пользовательском правиле.Дополнительные сведения см. в разделе Правила распространяют изменения в пределах модели.

  • Подписка на события Прежде чем можно будет подписаться на событие, создайте обработчик события и делегат.Затем воспользуйтесь EventManagerDirectoryсвойство, которое необходимо подписаться на событие.Дополнительные сведения см. в разделе Обработчики событий распространяют изменения за пределы модели.

  • Отменить изменения При отмене транзакции, вызываются события, но правила не применяются.Если правило изменяет значение и отменить изменения, оно сброшено к исходному значению во время операции отката.При возникновении события, необходимо вручную изменить значения обратно к своему исходному значению.Дополнительные сведения о transactons и откате см. в разделе Практическое руководство. Обновление модели с помощью транзакций.

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

См. также

Основные понятия

Практическое руководство. Перехват щелчка фигуры или декоратора

Другие ресурсы

Написание кода для настройки доменного языка