Пошаговое руководство. Создание пользовательского элемента управления 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

  1. В Visual Studio из меню Файл создайте новый Проект.

  2. Назовите проект LookupControlWalkthrough.

  3. Выберите Приложение Windows и нажмите кнопку OK.Дополнительные сведения см. в разделе Разработка клиентских приложений.

    Проект LookupControlWalkthrough будет создан и добавлен в Обозреватель решений.

Добавление пользовательского элемента управления в проект

В этом пошаговом руководстве создается элемент управления с подстановкой на основе Пользовательского элемента управления, поэтому добавьте элемент Пользовательский элемент управления к проекту LookupControlWalkthrough.

Для добавления пользовательского элемента управления в проект:

  1. В меню Проект выберите Добавить пользовательский элемент управления.

  2. Введите LookupBox в область Имя и нажмите кнопку Добавить.

    Элемент управления LookupBox добавится в Обозреватель решений и откроется в конструкторе.

Разработка элемента управления LookupBox

Для разработки элемента управления LookupBox:

  • Перетащите ComboBox из Панели элементов на поверхность разработки пользовательского элемента управления.

Добавление обязательного атрибута привязки данных

Для элементов управления с подстановкой, поддерживающих привязку данных, можно реализовать LookupBindingPropertiesAttribute.

Чтобы реализовать атрибут LookupBindingProperties:

  1. Переключите элемент управления LookupBox в режим просмотра кода.(В меню Вид выберите команду Код.)

  2. Замените код в 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();
            }
        }
    }
    
  3. В меню Построение выберите пункт Построить решение.

Создание источника данных из вашей базы данных

На этом шаге создается источник данных с помощью Мастера настройки источника данных для таблиц Customers и Orders в демонстрационной базе данных Northwind.Для создания подключения необходимо иметь доступ к демонстрационной базе данных Northwind.Сведения о настройке учебной базы данных Northwind см. в разделе Практическое руководство. Установка образцов баз данных.

Для создания источника данных:

  1. В меню Данные выберите пункт Показать источники данных.

  2. Чтобы запустить Мастер настройки источника данных, выберите элемент Добавить новый источник данных в окне Источники данных.

  3. На странице Выбор типа источника данных выберите элемент База данных и нажмите Далее.

  4. На странице Выбор подключения базы данных выполните одно из следующих действий:

  5. Если базе данных требуется пароль, выберите параметр для включения конфиденциальных данных и щелкните Далее.

  6. Щелкните Далее на странице Сохранение подключения в файле конфигурации приложения.

  7. Разверните узел Таблицы на странице Выбор объектов базы данных.

  8. Выберите таблицы Customers и Orders и нажмите кнопку Готово.

    NorthwindDataSet добавляется к проекту, и таблицы Customers и Orders появляются в окне Источники данных.

Задание столбца CustomerID таблицы Orders для использования элемента управления LookupBox

В окне Источники данных можно задать элемент управления, создаваемый до перетаскивания элементов на форму.

Чтобы задать столбец CustomerID для привязки к элементу управления LookupBox:

  1. Откройте форму Form1 в конструкторе.

  2. Разверните узел Customers в окне Источники данных.

  3. Разверните узел Orders (в узле Customers ниже столбца Fax).

  4. Щелкните стрелку раскрывающегося списка на узле Orders и выберите из списка Cведения.

  5. Щелкните стрелку раскрывающегося списка столбца CustomerID (в узле Orders) и выберите Настройка.

  6. Выберите LookupBox из списка Связанные элементы управления в диалоговом окне Параметры настройки пользовательского интерфейса данных.

  7. Нажмите кнопку ОК.

  8. Щелкните стрелку раскрывающегося списка столбца CustomerID и выберите LookupBox.

Добавление элементов управления в форму

Можно создавать элементы управления с привязкой к данным, перетаскивая элементы из окна Источники данных на Form1.

Для создания элементов управления с привязкой к данным в формах Windows Forms:

  • Перетащите узел Orders из окна Источники данных на форму и убедитесь, что элемент управления LookupBox используется для отображения данных столбца CustomerID.

Привязка элемента управления для подстановки CompanyName из таблицы клиентов

Для настройки привязки подстановки:

Запуск приложения

Запуск приложения

  • Нажмите клавишу F5 для запуска приложения.

  • Переместитесь по нескольким записям и убедитесь, что CompanyName отображается в элементе управления LookupBox.

См. также

Задачи

Практическое руководство. Установка элемента управления, создаваемого при перетаскивании из окна "Источники данных"

Основные понятия

Новые возможности разработки приложений для работы с данными в Visual Studio 2012

Привязка элементов управления Windows Forms к данным в Visual Studio

Подготовка приложения к получению данных

Выборка данных в приложение

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

Редактирование данных в приложении

Проверка данных

Сохранение данных

Другие ресурсы

Подключение к данным в Visual Studio