Общие сведения о компоненте BindingSource

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

Компонент BindingSource в качестве посредника

Компонент BindingSource выступает в качестве источника данных для некоторых или всех элементов управления формы. BindingSource можно привязать к элементу управления в Visual Studio с помощью свойства DataBindings, которое доступно в окне Свойства. См. также Практическое руководство. Связывание элементов управления Windows Forms с компонентом BindingSource с помощью конструктора.

Компонент BindingSource можно привязать как к источникам простых данных, например одиночному свойству объекта или базовой коллекции, такому как ArrayList, так и к источникам сложных данных, таким как таблица базы данных. Компонент BindingSource является посредником, обеспечивающим привязку и управление валютой. Во время разработки или во время выполнения компонент BindingSource можно привязать к источнику сложных данных, указав в качестве значений его свойств DataSource и DataMember базу данных и таблицу. На следующем рисунке показано, как компонент BindingSource встраивается в существующую архитектуру привязки данных.

Binding Source and Data Binding Architecture

Примечание.

Во время разработки некоторые действия, например перетаскивание таблицы базы данных из окна данных в пустую форму, приведут к созданию компонента BindingSource, его привязке к базовому источнику данных и добавлению элементов управления данными в одной операции. См. также Привязка элементов управления Windows Forms к данным в Visual Studio.

Компонент BindingSource в качестве источника данных

Если начать добавлять элементы в компонент BindingSource компонента без указания списка для привязки, то компонент будет действовать как источник данных в виде списка и примет эти элементы.

Кроме того, можно написать код, чтобы добавить пользовательскую функциональность "AddNew" с помощью события AddingNew, которое возникает при вызове метода AddNew перед добавлением элемента в список. Дополнительные сведения см. в разделе Архитектура компонента BindingSource.

Для пользователей, которым необходимо перемещение данных в форме, компонент BindingNavigator предоставляет возможность перемещения данных и управления ими совместно с компонентом BindingSource. Дополнительные сведения см. в разделе Элемент управления BindingNavigator.

Обработка данных

BindingSource выступает в качестве CurrencyManager для всех привязок и, таким образом, может предоставлять доступ к сведениям о валюте и положении в зависимости от источника данных. В следующей таблице показаны члены, предоставляемые компонентом BindingSource для доступа и обработки базовых данных.

Элемент Description
Свойство Current Возвращает текущий элемент источника данных.
Свойство Position Возвращает или задает текущую позицию в базовом списке.
Свойство List Возвращает список, который является результатом вычисления DataSource и DataMember. Если свойство DataMember не задано, то возвращается список, указанный в DataSource.
InsertМетод Вставляет элемент в список по указанному индексу.
RemoveCurrentМетод Удаляет текущий элемент из списка.
EndEditМетод Применяет ожидающие изменения к базовому источнику данных.
CancelEditМетод Отменяет текущую операцию редактирования.
AddNewМетод Добавляет новый элемент в базовый список. Если источник данных реализует IBindingList и возвращает элемент из события AddingNew, то добавляется этот элемент. В противном случае запрос передается в метод AddNew списка. Если базовый список не является IBindingList, элемент автоматически создается с помощью его открытого конструктора без параметров.

Сортировка и фильтрация

Как правило, работа осуществляется с упорядоченным или отфильтрованным представлением источника данных. В следующей таблице показаны члены, предоставляемые компонентом BindingSource источника данных.

Элемент Description
Свойство Sort Если источником данных является IBindingList, то возвращает или задает имя столбца, используемого для сортировки, и порядок сортировки. Если источником данных является IBindingListView и поддерживается расширенная сортировка, то возвращает имена нескольких столбцов, используемых для сортировки, и порядок сортировки
Свойство Filter Если источником данных является IBindingListView, то возвращает или задает выражение, используемое для фильтрации просматриваемых строк.

См. также