Источники данных, поддерживаемые Windows Forms
Традиционно привязка данных используется в приложениях для получения преимуществ данных, хранящихся в базах данных. Благодаря привязке данных в Windows Forms можно осуществлять доступ к данным, находящимся в базах данных, а также в других структурах, например в массивах или в коллекциях, при выполнении определенных минимальных требований.
Структуры для привязки
В Windows Forms можно выполнить привязку к самым разнообразными структурам — от простых объектов (простая привязка) до сложных списков, таких как таблицы данных ADO.NET (сложная привязка). В случае простой привязки Windows Forms поддерживает привязку к общедоступным свойствам простого объекта. При привязке Windows Forms на основе списков обычно требуется, чтобы объект поддерживал интерфейс IList или IListSource. Кроме того, если при привязке используется компонент BindingSource, можно выполнить привязку к объекту, поддерживающему интерфейс IEnumerable. Дополнительные сведения об интерфейсах, связанных с привязкой данных, см. в разделе Интерфейсы, относящиеся к связыванию данных.
В представленном ниже списке перечислены структуры, к которым можно выполнить привязку в Windows Forms.
BindingSource
Компонент BindingSource является наиболее распространенным источником данных Windows Forms. Он выполняет функцию прокси между источником данных и элементами управления Windows Forms. Основной подход при использовании компонента BindingSource заключается в том, чтобы привязать элементы управления к компоненту BindingSource, а затем привязать компонент BindingSource к источнику данных (например, таблице данных ADO.NET или бизнес-объекту). Компонент BindingSource обеспечивает поддержку привязки данных и позволяет повысить уровень этой поддержки. К примеру, такие элементы управления Windows Forms на основе списков, как DataGridView и ComboBox, не поддерживают привязку непосредственно к источникам данных IEnumerable, однако такую привязку можно осуществить посредством компонента BindingSource. В этом случае компонент BindingSource преобразует источник данных в интерфейс IList.Простые объекты
Windows Forms поддерживает привязку свойств элементов управления к общедоступным свойствам экземпляра объекта с помощью типа Binding. Если используется компонент BindingSource, Windows Forms также поддерживает привязку элементов управления на основе списка, таких как ListControl к экземпляру объекта.Массив или коллекция
Для использования в качестве источника данных список должен реализовывать интерфейс IList; в качестве одного из примеров можно привести массив, который является экземпляром класса Array. Дополнительные сведения о массивах см. в разделе Практическое руководство. Создание массива объектов (Visual Basic).Как правило, при создании списков объектов для привязки данных необходимо использовать BindingList<T>. Класс BindingList<T> представляет собой универсальную версию интерфейса IBindingList. Интерфейс IBindingList является расширением интерфейса IList, добавляя свойства, методы и события, необходимые для двусторонней привязки данных.
IEnumerable
При использовании компонента BindingSource элементы управления Windows Forms можно привязать к источникам данных, которые поддерживают только интерфейс IEnumerable.ADO.NET Объекты данных
ADO.NET предлагает несколько структур данных, к которым можно выполнить привязку. Каждая структура отличается своими возможностями и сложностью.DataColumn. Объект DataColumn является основным стандартным блоком для создания объекта DataTable, в котором несколько столбцов образуют таблицу. Каждый объект DataColumn имеет свойство DataType, которое определяет вид данных, содержащихся в столбце (например, производителей автомобилей в таблице с описанием автомобилей). К столбцу в таблице можно осуществить простую привязку элемента управления (например, свойства Text элемента управления TextBox).
DataTable. Объект DataTable является представлением таблицы, содержащей строки и столбцы, в ADO.NET. Таблица данных содержит две коллекции: DataColumn, представляющую столбцы данных в определенной таблице (столбцы однозначно определяют виды данных, которые можно ввести в таблицу), и DataRow, представляющую строки данных в определенной таблице. К сведениям, содержащимся в таблице данных, можно осуществить сложную привязку (например, привязку элемента управления DataGridView к таблице данных). Однако при привязке к объекту DataTable фактически выполняется привязка к представлению таблицы по умолчанию.
DataView. Объект DataView служит для настраиваемого представления единственной таблицы данных, которую можно отфильтровать или упорядочить. Представление данных — это "моментальный снимок" данных, используемый элементами управления при сложной привязке. К данным в представлении данных можно выполнить простую или сложную привязку, однако следует принять во внимание, что привязка осуществляется к "замороженному изображению" данных, а не к достоверному, обновляемому источнику данных.
DataSet. Объект DataSet представляет собой коллекцию таблиц, отношений и ограничений данных в базе данных. К данным в наборе данных можно выполнить простую или сложную привязку, однако следует принять во внимание, что привязка осуществляется к выбранному по умолчанию объекту DataViewManager объекта DataSet (см. следующий пункт).
DataViewManager. Объект DataViewManager представляет собой настраиваемое представление всего объекта DataSet. Он аналогичен объекту DataView, но включает в себя отношения. Коллекция DataViewSettings позволяет задавать фильтры по умолчанию и параметры сортировки для любых представлений, которые существуют в объекте DataViewManager для данной таблицы.
См. также
Основные понятия
Получение уведомления об изменении данных, связанных с элементом управления, в Windows Forms
Связывание данных и Windows Forms