Привязка элементов управления Windows Forms к данным в приложениях платформа .NET Framework

Примечание.

Наборы данных и связанные классы являются устаревшими технологиями платформа .NET Framework с начала 2000-х годов, которые позволяют приложениям работать с данными в памяти во время отключения приложений от базы данных. Они особенно полезны для приложений, которые позволяют пользователям изменять данные и сохранять изменения обратно в базу данных. Хотя наборы данных оказались очень успешными, мы рекомендуем новым приложениям .NET использовать Entity Framework Core. Entity Framework предоставляет более естественный способ работы с табличными данными в виде объектных моделей, и он имеет более простой интерфейс программирования.

Вы можете отображать данные пользователям приложения, привязывая данные к Windows Forms. Чтобы создать эти элементы управления с привязкой к данным, перетащите элементы из окна "Источники данных" в конструктор Windows Forms в Visual Studio.

Data Source drag operation

Совет

Если окно "Источники данных" не отображается, его можно открыть, выбрав просмотр>других источников данных Windows>или нажав клавиши SHIFT+ALT+D. Для просмотра окна "Источники данных" необходимо открыть проект в Visual Studio.

Перед перетаскиванием элементов можно задать тип элемента управления, к которому нужно привязаться. Различные значения отображаются в зависимости от того, выбираете ли сама таблица или отдельный столбец. Можно также задать пользовательские значения. Для таблицы details означает, что каждый столбец привязан к отдельному элементу управления.

Bind data source to DataGridView

Элементы управления BindingSource и BindingNavigator

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

Дополнительные сведения о компоненте BindingSource см. в следующих статье:

Элемент управления BindingNavigator предоставляет пользовательский интерфейс для навигации по данным, отображаемым приложением Windows.

Привязка к данным в элементе управления DataGridView

Для элемента управления DataGridView вся таблица привязана к одному элементу управления. При перетаскивании DataGridView в форму также отображается полоса инструментов для навигации по записям (BindingNavigator). Набор данных, TableAdapterBindingSource и BindingNavigator отображается в области компонентов. На следующем рисунке также добавляется tableAdapterManager , так как таблица Customers имеет отношение к таблице Orders. Эти переменные объявляются в автоматическом коде как закрытые члены в классе формы. Автоматически созданный код для заполнения DataGridView находится в обработчике Form_Load событий. Код для сохранения данных для обновления базы данных находится в Save обработчике событий для BindingNavigator. При необходимости можно переместить или изменить этот код.

GridView with BindingNavigator

Поведение DataGridView и BindingNavigator можно настроить, щелкнув смарт-тег в правом верхнем углу каждого из них:

DataGridView and Binding Navigator smart tags

Если элементы управления, необходимые приложению, недоступны в окне источников данных, можно добавить элементы управления. Дополнительные сведения см. в разделе "Добавление пользовательских элементов управления" в окно "Источники данных".

Вы также можете перетащить элементы из окна источников данных в элементы управления, уже размещенные в форме, чтобы привязать элемент управления к данным. Элемент управления, который уже привязан к данным, сбрасывает свои привязки данных к элементу, который недавно перетаскивался на него. Чтобы быть допустимыми целевыми объектами удаления, элементы управления должны быть способны отображать базовый тип данных элемента, перетаскиваемого на него из окна источников данных. Например, недопустимо перетаскивать элемент с типом DateTime данных в объект CheckBox, так как он CheckBox не может отображать дату.

Привязка к данным в отдельных элементах управления

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

Bind data source to details

Важно!

Обратите внимание, что на предыдущем рисунке вы перетаскиваете свойство Orders таблицы Customers, а не из таблицы Orders. При привязке к свойству Customer.Orders команды навигации, сделанные в DataGridView , отражаются немедленно в элементах управления сведениями. Если вы перетаскивали из таблицы Orders, элементы управления по-прежнему будут привязаны к набору данных, но не будут синхронизированы с DataGridView.

На следующем рисунке показаны элементы управления с привязкой к данным по умолчанию, которые добавляются в форму после привязки свойства Orders в таблице "Клиенты" к сведениям в окне "Источники данных".

Orders table bound to details

Обратите внимание, что каждый элемент управления имеет смарт-тег. Этот тег включает настройки, которые применяются только к этому элементу управления.