Пошаговое руководство. Создание пользовательского элемента управления Windows Forms с подстановочной привязкой данных
При отображении данных на формах в приложениях Windows можно выбрать существующие элементы управления из Панели элементов или создать собственные элементы управления, если приложение требует использования возможностей, недоступных в стандартных элементах управления.В данном пошаговом руководстве показано, как создать элемент управления, который реализует LookupBindingPropertiesAttribute.Элементы управления, которые реализуют LookupBindingPropertiesAttribute, могут содержать три свойства, которые связаны с данными.Такие элементы управления похожи на ComboBox.
Дополнительные сведения по разработке элементов управления содержатся в разделе Создание элементов управления Windows Forms во время разработки.
При разработке элементов управления для использования в сценариях привязки данных необходимо реализовать один из следующих атрибутов привязки:
Использование атрибута привязки данных |
---|
Реализуйте DefaultBindingPropertyAttribute на простых элементах управления, таких как TextBox, отображающих один столбец (или свойство) данных.Дополнительные сведения см. в разделе Пошаговое руководство. Создание пользовательского элемента управления Windows Forms с простой привязкой данных. |
Реализуйте ComplexBindingPropertiesAttribute на элементах управления, таких как DataGridView, отображающих списки (таблицы) данных.Дополнительные сведения см. в разделе Пошаговое руководство. Создание пользовательского элемента управления Windows Forms со сложной привязкой данных. |
Реализуйте LookupBindingPropertiesAttribute на элементах управления, таких как ComboBox, отображающих списки (или таблицы) данных, но также требующих представить один столбец или свойство.(Этот процесс описан на данной странице пошагового руководства). |
В этом пошаговом руководстве создается элемент управления с подстановкой, привязанный к данным из двух таблиц.В этом пошаговом руководстве используются таблицы Customers и Orders из демонстрационной базы данных "Борей".Элемент управления просмотра будет привязан к полю CustomerID таблицы Orders.Это значение будет использоваться для поиска (подстановки) CompanyName из таблицы Customers.
В процессе выполнения этого пошагового руководства вы научитесь:
Создайте новое приложение Windows.
Добавлять новый Пользовательский элемент управления в проект.
Разрабатывать визуальное представление пользовательского элемента управления.
Реализовывать атрибут LookupBindingProperty.
Создавать набор данных с помощью мастер настройки источника данных.
Задавать столбец CustomerID таблицы Orders в окне Источники данных для использования в нового элемента управления.
Создайте форму для отображения данных в новом элементе управления.
Обязательные компоненты
Для выполнения этого пошагового руководства потребуется следующее.
- Доступ к примеру базы данных "Борей".Дополнительные сведения см. в разделе Практическое руководство. Установка образцов баз данных.
Создание приложения Windows
Первым шагом является создание Приложения Windows.
Чтобы создать новый проект Windows
В Visual Studio из меню Файл создайте новый Проект.
Назовите проект LookupControlWalkthrough.
Выберите Приложение Windows и нажмите кнопку OK.Дополнительные сведения см. в разделе Разработка клиентских приложений.
Проект LookupControlWalkthrough будет создан и добавлен в Обозреватель решений.
Добавление пользовательского элемента управления в проект
В этом пошаговом руководстве создается элемент управления с подстановкой на основе Пользовательского элемента управления, поэтому добавьте элемент Пользовательский элемент управления к проекту LookupControlWalkthrough.
Для добавления пользовательского элемента управления в проект:
В меню Проект выберите Добавить пользовательский элемент управления.
Введите LookupBox в область Имя и нажмите кнопку Добавить.
Элемент управления LookupBox добавится в Обозреватель решений и откроется в конструкторе.
Разработка элемента управления LookupBox
Для разработки элемента управления LookupBox:
- Перетащите ComboBox из Панели элементов на поверхность разработки пользовательского элемента управления.
Добавление обязательного атрибута привязки данных
Для элементов управления с подстановкой, поддерживающих привязку данных, можно реализовать LookupBindingPropertiesAttribute.
Чтобы реализовать атрибут LookupBindingProperties:
Переключите элемент управления LookupBox в режим просмотра кода.(В меню Вид выберите команду Код.)
Замените код в LookupBox следующим кодом.
<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
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(); } } }
В меню Построение выберите пункт Построить решение.
Создание источника данных из вашей базы данных
На этом шаге создается источник данных с помощью Мастера настройки источника данных для таблиц Customers и Orders в демонстрационной базе данных Northwind.Для создания подключения необходимо иметь доступ к демонстрационной базе данных Northwind.Сведения о настройке учебной базы данных Northwind см. в разделе Практическое руководство. Установка образцов баз данных.
Для создания источника данных:
В меню Данные выберите пункт Показать источники данных.
Чтобы запустить Мастер настройки источника данных, выберите элемент Добавить новый источник данных в окне Источники данных.
На странице Выбор типа источника данных выберите элемент База данных и нажмите Далее.
На странице Выбор подключения базы данных выполните одно из следующих действий:
Если подключение к учебной базе данных Northwind доступно в раскрывающемся списке, то выберите его.
-или-
Выберите Новое подключение для открытия диалогового окна Добавить/изменить подключение.Дополнительные сведения см. в разделе Диалоговое окно "Добавить/Изменить подключение" (вкладка "Общие").
Если базе данных требуется пароль, выберите параметр для включения конфиденциальных данных и щелкните Далее.
Щелкните Далее на странице Сохранение подключения в файле конфигурации приложения.
Разверните узел Таблицы на странице Выбор объектов базы данных.
Выберите таблицы Customers и Orders и нажмите кнопку Готово.
NorthwindDataSet добавляется к проекту, и таблицы Customers и Orders появляются в окне Источники данных.
Задание столбца CustomerID таблицы Orders для использования элемента управления LookupBox
В окне Источники данных можно задать элемент управления, создаваемый до перетаскивания элементов на форму.
Чтобы задать столбец CustomerID для привязки к элементу управления LookupBox:
Откройте форму Form1 в конструкторе.
Разверните узел Customers в окне Источники данных.
Разверните узел Orders (в узле Customers ниже столбца Fax).
Щелкните стрелку раскрывающегося списка на узле Orders и выберите из списка Cведения.
Щелкните стрелку раскрывающегося списка столбца CustomerID (в узле Orders) и выберите Настройка.
Выберите LookupBox из списка Связанные элементы управления в диалоговом окне Параметры настройки пользовательского интерфейса данных.
Нажмите кнопку ОК.
Щелкните стрелку раскрывающегося списка столбца CustomerID и выберите LookupBox.
Добавление элементов управления в форму
Можно создавать элементы управления с привязкой к данным, перетаскивая элементы из окна Источники данных на Form1.
Для создания элементов управления с привязкой к данным в формах Windows Forms:
- Перетащите узел Orders из окна Источники данных на форму и убедитесь, что элемент управления LookupBox используется для отображения данных столбца CustomerID.
Привязка элемента управления для подстановки CompanyName из таблицы клиентов
Для настройки привязки подстановки:
Выберите основной узел Customers в окне Источники данных и перетащите его в поле со списком в CustomerIDLookupBox на Form1.
Это устанавливает связывание для отображения CompanyName из таблицы Customers, сохраняя значение CustomerID из таблицы Orders.Дополнительные сведения см. в разделе Практическое руководство. Создание таблиц подстановки в приложениях Windows Forms.
Запуск приложения
Запуск приложения
Нажмите клавишу F5 для запуска приложения.
Переместитесь по нескольким записям и убедитесь, что CompanyName отображается в элементе управления LookupBox.
См. также
Задачи
Основные понятия
Новые возможности разработки приложений для работы с данными в Visual Studio 2012
Привязка элементов управления Windows Forms к данным в Visual Studio
Подготовка приложения к получению данных
Привязка элементов управления к данным в Visual Studio
Редактирование данных в приложении