Поделиться через


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

Замечание

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

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

Операция перетаскивания источника данных

Подсказка

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

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

Привязка источника данных к DataGridView

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

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

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

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

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

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

GridView с BindingNavigator

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

Смарт-теги DataGridView и Binding Navigator

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

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

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

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

Привязка источника данных к деталям

Это важно

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

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

Таблица заказов, связанная с деталями

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