Пошаговое руководство. Создание пользовательского элемента управления Windows Forms с подстановочной привязкой данных
Опубликовано: Апрель 2016
При отображении данных на формах Windows Forms вы можете выбрать имеющиеся элементы управления в области элементов или создать пользовательские элементы управления, если вашему приложению требуется функциональность, отсутствующая в стандартных элементах управления. В этом пошаговом руководстве демонстрируется создание элемента управления, реализующего LookupBindingPropertiesAttribute. Элементы управления, реализующие LookupBindingPropertiesAttribute, могут содержать три свойства, которые можно привязать к данным. Такие элементы управления похожи на ComboBox.
Дополнительные сведения о создании элементов управления см. в разделе Создание элементов управления Windows Forms во время разработки.
При создании элементов управления для использования в сценариях привязки к данным необходимо реализовать один из следующих атрибутов привязки к данным.
Использование атрибута привязки к данным |
---|
Реализуйте DefaultBindingPropertyAttribute на простых элементах управления, таких как TextBox, которые отображают отдельный столбец (или свойство) данных. Для получения дополнительной информации см. Пошаговое руководство. Создание пользовательского элемента управления Windows Forms с простой привязкой данных. |
Реализуйте ComplexBindingPropertiesAttribute на элементах управления, таких как DataGridView, которые отображают списки (или таблицы) данных. Для получения дополнительной информации см. Пошаговое руководство. Создание пользовательского элемента управления Windows Forms со сложной привязкой данных. |
Реализуйте LookupBindingPropertiesAttribute на элементах управления, таких как ComboBox, которые отображают списки (или таблицы) данных, но также должны представлять отдельный столбец или отдельное свойство. (Этот процесс описан в данном пошаговом руководстве.) |
В этом пошаговом руководстве создается элемент управления поиска, который привязан к данным из двух таблиц. В данном примере используются таблицы Customers
и Orders
из учебной базы данных "Борей". Элемент управления поиска будет привязан к полю CustomerID
из таблицы Orders
. Он будет использовать это значение для поиска CompanyName
в таблице Customers
.
В этом пошаговом руководстве описаны следующие процедуры.
Создание нового проекта Приложение Windows.
Добавление нового Пользовательского элемента управления в проект.
Визуальное проектирование пользовательского элемента управления.
Реализация атрибута
LookupBindingProperty
.Создание набора данных с помощью мастер настройки источника данных.
Настройка столбца CustomerID таблицы Заказы в окне Источники данных на использование нового элемента управления.
Создание формы для отображения данных в новом элементе управления.
Обязательные компоненты
Для выполнения данного пошагового руководства требуется:
- Доступ к примеру базы данных "Борей". Для получения дополнительной информации см. Практическое руководство. Установка образцов баз данных.
Создание приложения Windows
Первым шагом является создание Приложения Windows.
Порядок создания нового проекта Windows
В меню Файл Visual Studio создайте новый Проект.
Присвойте проекту имя "LookupControlWalkthrough".
Выберите Приложение Windows и нажмите кнопку ОК. Для получения дополнительной информации см. Клиентские приложения.
Создается проект LookupControlWalkthrough, который добавляется в Обозреватель решений.
Добавление пользовательского элемента управления в проект
В данном руководстве элемент управления поиска создается из Пользовательского элемента управления, поэтому добавьте в проект LookupControlWalkthrough элемент Пользовательский элемент управления.
Добавление пользовательского элемента управления в проект
В меню Проект выберите пункт Добавить пользовательский элемент управления.
Введите
LookupBox
в области Имя и нажмите кнопку Добавить.Элемент управления LookupBox добавляется в Обозреватель решений и открывается в конструкторе.
Проектирование элемента управления LookupBox
Порядок проектирования элемента управления LookupBox
- Перетащите ComboBox из Области элементов на рабочую область конструирования пользовательского элемента управления.
Добавление необходимого атрибута привязки к данным
Для элементов управления поиска, поддерживающих привязку к данным, можно реализовать LookupBindingPropertiesAttribute.
Реализация атрибута LookupBindingProperties
Переключите элемент управления LookupBox в представление кода. (В меню Вид выберите Код.)
Замените код в
LookupBox
следующим кодом:using System.Windows.Forms; namespace CS { [System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")] public partial class LookupBox : UserControl { public object DataSource { get{ return comboBox1.DataSource; } set{ comboBox1.DataSource = value; } } public string DisplayMember { get{ return comboBox1.DisplayMember; } set{ comboBox1.DisplayMember = value; } } public string ValueMember { get{ return comboBox1.ValueMember; } set{ comboBox1.ValueMember = value; } } public string LookupMember { get{ return comboBox1.SelectedValue.ToString(); } set{ comboBox1.SelectedValue = value; } } public LookupBox() { InitializeComponent(); } } }
<System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")> Public Class LookupBox Public Property DataSource() As Object Get Return ComboBox1.DataSource End Get Set(ByVal value As Object) ComboBox1.DataSource = value End Set End Property Public Property DisplayMember() As String Get Return ComboBox1.DisplayMember End Get Set(ByVal value As String) ComboBox1.DisplayMember = value End Set End Property Public Property ValueMember() As String Get Return ComboBox1.ValueMember End Get Set(ByVal value As String) ComboBox1.ValueMember = value End Set End Property Public Property LookupMember() As String Get Return ComboBox1.SelectedValue.ToString() End Get Set(ByVal value As String) ComboBox1.SelectedValue = value End Set End Property End Class
В меню Построение выберите пункт Построить решение.
Создание источника данных из вашей базы данных
В этом шаге Мастер настройки источника данных используется для создания источника данных на основе таблиц Customers
и Orders
в учебной базе данных "Борей". Для создания подключения необходимо иметь доступ к учебной базе данных "Борей". Дополнительные сведения о настройке учебной базы данных "Борей" см. в разделе Практическое руководство. Установка образцов баз данных.
Создание источника данных
В меню Данные выберите команду Показать источники данных.
В окне Источники данных выберите Добавить новый источник данных, чтобы запустить Мастер настройки источника данных.
На странице Выбор типа источника данных выберите элемент База данных и нажмите Далее.
На странице Выбор подключения к базе данных выполните одно из следующих действий.
Если подключение к учебной базе данных Northwind доступно в раскрывающемся списке, то выберите его.
-или-
Выберите Новое подключение для открытия диалогового окна Добавить/изменить подключение.
Если базе данных требуется пароль, выберите параметр для включения конфиденциальных данных и щелкните Далее.
На странице Сохранение подключения в файле конфигурации приложения нажмите кнопку Далее.
Разверните узел Таблицы на странице Выбор объектов базы данных.
Выберите таблицы
Customers
иOrders
и нажмите кнопку Готово.Объект NorthwindDataSet добавляется в проект, и таблицы
Customers
иOrders
отображаются в окне Источники данных.
Настройка столбца CustomerID таблицы заказов на использование элемента управления LookupBox
Вы можете задать создаваемый элемент управления в окне Источники данных перед перетаскиванием элементов на форму.
Порядок настройки столбца CustomerID на привязку к элементу управления LookupBox
Откройте Form1 в конструкторе.
Разверните узел Клиенты в окне Источники данных.
Разверните узел Заказы (в узле Клиенты под столбцом Факс).
Щелкните стрелку раскрывающегося списка в узле Заказы и выберите Сведения в списке элементов управления.
Щелкните стрелку раскрывающегося списка в столбце CustomerID (в узле Заказы) и выберите Настройка.
Выберите LookupBox в списке Связанные элементы управления диалогового окна Настройка данных интерфейса пользователя.
Нажмите кнопку ОК.
Щелкните стрелку раскрывающегося списка в столбце CustomerID и выберите LookupBox.
Добавление элементов управления на форму
Вы можете создавать элементы управления с привязкой к данным с помощью перетаскивания элементов из окна Источники данных на Form1.
Создание элементов управления с привязкой к данным на форме Windows Forms
- Перетащите узел Заказы из окна Источники данных на форму Windows Forms и убедитесь, что элемент управления LookupBox используется для отображения данных в столбце
CustomerID
.
Привязка элемента управления для поиска CompanyName в таблице клиентов
Настройка привязок поиска
Выберите главный узел Клиенты в окне Источники данных и перетащите его на поле со списком в CustomerIDLookupBox на Form1.
При этом задается привязка к данным для отображения
CompanyName
из таблицыCustomers
с сохранением значенияCustomerID
из таблицыOrders
. Для получения дополнительной информации см. Практическое руководство. Создание таблиц подстановки в приложениях Windows Forms.
Запуск приложения
Запуск приложения
Нажмите клавишу F5 для запуска приложения.
Перейдите по нескольким записям и проверьте, что
CompanyName
отображается в элементе управленияLookupBox
.
См. также
Задание поведения, при котором элемент управления создается при перетаскивании из окна "Источники данных"
Привязка элементов управления Windows Forms к данным в Visual Studio
Подключение к данным в Visual Studio
Подготовка приложения к получению данных
Выборка данных в приложение
Привязка элементов управления к данным в Visual Studio
Редактирование данных в приложении
Проверка данных
Сохранение данных