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


События уведомления об изменении свойств

Обновлен: Ноябрь 2007

События уведомления об изменении свойств используются для уведомления кода программы об изменении значений свойств вследствие внутренних или внешних событий. Это позволяет коду при необходимости обновлять соответствующее состояние (например, путем изменения вида элемента управления в пользовательском интерфейсе).

События уведомления об изменении свойств рекомендуется использовать при модификации значений свойств в API высокого уровня (обычно компонентов конструктора).

Это правило относится к членам высокого уровня, в которых уведомление об изменении имеет существенное значение для библиотеки. Например, объекты, которые предоставляют или взаимодействуют с пользовательским интерфейсом, используют уведомление об изменении для разрешения соответствующего обновления зависимых объектов UI. События уведомления об изменении не должны быть использованы там, где они не имеют существенного значения для библиотеки или где уведомление было бы столь частым, что оно значительно повлияло бы на производительность. Например, неправильно генерировать событие уведомления об изменении каждый раз, когда элементы добавляются в общецелевую коллекцию или удаляются из нее. Во избежание внесения ненужной сложности в обычно используемые типы следует использовать коллекцию специального назначения, когда это функционально необходимо. Библиотеки .NET Framework версии 2.0 в качестве общецелевой коллекции предоставляют Collection<T>. Для коллекций, требующих уведомления, Framework также предоставляет BindingList<T>.

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

Если значение свойства изменяется вследствие внешних событий, таких как пользовательский ввод, используйте событие уведомления об изменении перед тем, как изменение будет сделано, чтобы указать, что значение будет изменяться. После того как изменение было осуществлено, для сигнализации об изменении значения используйте другое событие. Например, класс Control предоставляет события Validating и Validated для уведомления кода о ходе проверки.

Фрагменты — © Корпорация Майкрософт (Microsoft Corporation) 2005. Все права защищены.

Фрагменты — © Addison-Wesley Corporation. Все права защищены.

Дополнительные сведения о рекомендациях по разработке см. в книге "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries", Krzysztof Cwalina and Brad Abrams, Addison-Wesley, 2005.

См. также

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

Разработка индексированных свойств

Разработка свойств

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

Правила разработки членов

Руководство по разработке библиотек классов