Получение уведомления об изменении данных, связанных с элементом управления, в Windows Forms
Одной из наиболее важных концепций в привязке данных Windows Forms является уведомление об изменениях. Чтобы источник данных и привязанные элементы управления всегда располагали самыми актуальными данными, необходимо добавить уведомление об изменениях для привязки данных. В частности, необходимо убедиться, что привязанные элементы управления получают уведомления об изменениях, внесенных в их источник данных, а источник данных получает уведомления об изменениях, внесенных в привязанные свойства элемента управления.
В зависимости от типа привязки данных существуют разные виды уведомлений об изменениях:
Простая привязка, в которой одно свойство элемента управления привязывается к одному экземпляру объекта.
Привязка на основе списка, которая может включать в себя одно свойство элемента управления, привязанное к свойству элемента списка, или свойство элемента управления, привязанное к списку объектов.
Кроме того, при создании элементов управления Windows Forms, которые вы хотите использовать для привязки данных, необходимо применить шаблон имя_свойстваChanged к элементам управления, чтобы изменения привязанного свойства элемента управления распространялись в источник данных.
Уведомление об изменениях для простой привязки
Для простой привязки бизнес-объекты должны предоставлять уведомление об изменениях при изменении значения привязанного свойства. Это можно сделать, предоставив событие имя_свойстваChanged для каждого свойства бизнес-объекта и привязав бизнес-объект к элементам управления с помощью BindingSource или предпочтительного метода, в котором бизнес-объект реализует интерфейс INotifyPropertyChanged и вызывает событие PropertyChanged при изменении значения свойства. Дополнительные сведения см. в разделе Практическое руководство. Реализация интерфейса INotifyPropertyChanged. При использовании объектов, реализующих интерфейс INotifyPropertyChanged, использовать BindingSource для привязки объекта к элементу управления не требуется, однако использование BindingSource рекомендовано.
Уведомление об изменениях для привязки на основе списка
Windows Forms зависит от привязанного списка с точки зрения предоставления сведений об изменении свойства (изменяется значение свойства элемента списка) и изменении списка (удаляется или добавляется элемент в списке) привязанным элементам управления. Таким образом, списки, используемые для привязки данных, должны реализовывать IBindingList, который предоставляет оба типа уведомлений об изменениях. BindingList<T> — это универсальная реализация IBindingList, предназначенная для использования с привязкой данных Windows Forms. Вы можете создать BindingList<T>, который содержит тип бизнес-объекта, реализующий INotifyPropertyChanged, и список будет автоматически преобразовывать события PropertyChanged в события ListChanged. Если привязанный список не является IBindingList, необходимо привязать список объектов к элементам управления Windows Forms с помощью компонента BindingSource. Компонент BindingSource обеспечит преобразование свойств в список, аналогичное преобразованию BindingList<T>. Дополнительные сведения см. в разделе Практическое руководство. Получение уведомления об изменении данных с использованием компонента BindingSource и интерфейса INotifyPropertyChanged.
Уведомление об изменениях для пользовательских элементов управления
Наконец, на стороне элемента управления необходимо предоставить событие имя_свойстваChanged для каждого свойства, предназначенного для привязки к данным. Затем изменения, внесенные в свойство элемента управления, распространяются в привязанный источник данных. Дополнительные сведения см. в разделе Практическое руководство. Применение шаблона PropertyNameChanged.
См. также
.NET Desktop feedback
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по