Интерфейс IRaiseltemChangedEvents: осуществление уведомлений об изменении элемента

это может потребоваться если вы

Интерфейс IRaiseltemChangedEvents Позволяет коллекции указать, что она будет отслеживать изменения свойств содержащихся в ней объектов, производимые посредством метода SetValue Их дескрипторов свойств. Это может потребоваться, если вы ожидаете, что ваш тип коллекции может содержать объекты, которые не будут поддерживать интерфейс INotifyPropertyChanged, Но Хотите предусмотреть какую-то возможность уведомлять привязанные элементы управления о том, что свойства нижележащего элемента данных изменились. Этот интерфейс ничего не гарантирует относительно уведомления об изменениях, производимых какими-то средствами, отличными от метода SetValue Их дескрипторов свойств. Этот интерфейс используется в качестве сигнала потребляющему коду, что ваша коллекция будет возбуждать события ListChanged При изменении значений свойств ваших объектов, обусловленном действиями, произведенными через дескрипторы свойств — именно так производятся все обновления свойств через привязанные элементы управления, поддерживающие редактирование. Интерфейс имеет единственный элемент — булево свойство RaiseltemChangedEvents. Если коллекция возвращает в этом свойстве True, Потребляющий код вправе ожидать, что он будет получать уведомления в случае, когда какой-то объект в коллекции изменяется через привязанный элемент управления. Это используется во внутреннем устройстве компонента BindingSource Для лучшей синхронизации данных, отображаемых в привязанных элементах управления, даже если нижележащие объекты сами по себе не поддерживают уведомления об изменении свойств. Чтобы реализовать поддержку возбуждения событий ListChanged В ответ на изменения значений свойств в коллекции объектов, вам потребуется передать дескриптору свойства возвратно вызываемый делегат для каждого свойства каждого объекта в коллекции, так что коллекция будет получать уведомления об изменении этих свойств через дескриптор свойства. Это делается при помощи метода AddValueChanged Класса PropertyDescrriptor. Пример и более подробное обсуждение смотрите в главе 9, где реализуется класс Binding — ListView.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *