Пошаговое руководство. Создание пользовательского элемента управления Windows Forms со сложной привязкой данных

 

Опубликовано: Апрель 2016

При отображении данных на формах в приложениях Windows вы можете выбрать имеющиеся элементы управления в Области элементов или создать пользовательские элементы управления, если вашему приложению требуется функциональность, отсутствующая в стандартных элементах управления. В этом пошаговом руководстве демонстрируется создание элемента управления, реализующего ComplexBindingPropertiesAttribute. Элементы управления, реализующие ComplexBindingPropertiesAttribute, содержат свойство DataSource и DataMember, которое можно привязать к данным. Такие элементы управления похожи на DataGridView или ListBox.

Дополнительные сведения о создании элементов управления см. в разделе Создание элементов управления Windows Forms во время разработки.

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

Использование атрибута привязки к данным
Реализуйте DefaultBindingPropertyAttribute на простых элементах управления, таких как TextBox, которые отображают отдельный столбец (или свойство) данных. Для получения дополнительной информации см. Пошаговое руководство. Создание пользовательского элемента управления Windows Forms с простой привязкой данных.
Реализуйте ComplexBindingPropertiesAttribute на элементах управления, таких как DataGridView, которые отображают списки (или таблицы) данных. (Этот процесс описан в данном пошаговом руководстве.)
Реализуйте LookupBindingPropertiesAttribute на элементах управления, таких как ComboBox, которые отображают списки (или таблицы) данных, но также должны представлять отдельный столбец или отдельное свойство. Для получения дополнительной информации см. Пошаговое руководство. Создание пользовательского элемента управления Windows Forms с подстановочной привязкой данных.

В этом пошаговом руководстве создается сложный элемент управления, отображающий строки данных из таблицы. В данном примере используется таблица Customers из учебной базы данных "Борей". Сложный элемент управления отображает таблицу клиентов в DataGridView в пользовательском элементе управления.

В этом пошаговом руководстве описаны следующие процедуры.

  • Создание нового проекта Приложение Windows.

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

  • Визуальное проектирование пользовательского элемента управления.

  • Реализация атрибута ComplexBindingProperty.

  • Создание набора данных с помощью мастер настройки источника данных.

  • Настройка таблицы Клиенты в окно "Источники данных" для использования нового сложного элемента управления.

  • Добавьте новый элемент управления, перетащив его из окна Источники данных на Form1.

Обязательные компоненты

Для выполнения данного пошагового руководства требуется:

Создание приложения Windows

Первым шагом является создание Приложения Windows.

Порядок создания нового проекта Windows

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

  2. Присвойте проекту имя "ComplexControlWalkthrough".

  3. Выберите Приложение Windows и нажмите кнопку ОК. Для получения дополнительной информации см. Клиентские приложения.

    Создается проект ComplexControlWalkthrough, который добавляется в Обозреватель решений.

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

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

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

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

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

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

Проектирование элемента управления ComplexDataGridView

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

Порядок проектирования элемента управления ComplexDataGridView

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

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

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

Реализация атрибута ComplexBindingProperties

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

  2. Замените код в ComplexDataGridView следующим кодом:

    using System.Windows.Forms;
    
    namespace CS
    {
        [System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
        public partial class ComplexDataGridView : UserControl
        {
            public object DataSource
            {
                get{ return dataGridView1.DataSource; }
                set{ dataGridView1.DataSource = value; }
            }
    
            public string DataMember
            {
                get{ return dataGridView1.DataMember; }
                set{ dataGridView1.DataMember = value; }
            }
    
            public ComplexDataGridView()
            {
                InitializeComponent();
            }
        }
    }
    
    <System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")>
    Public Class ComplexDataGridView
    
        Public Property DataSource() As Object
            Get
                Return DataGridView1.DataSource
            End Get
            Set(ByVal value As Object)
                DataGridView1.DataSource = value
            End Set
        End Property
    
        Public Property DataMember() As String
            Get
                Return DataGridView1.DataMember
            End Get
            Set(ByVal value As String)
                DataGridView1.DataMember = value
            End Set
        End Property
    End Class
    
  3. В меню Построение выберите пункт Построить решение.

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

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

Создание источника данных

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

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

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

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

    • Если подключение к учебной базе данных Northwind доступно в раскрывающемся списке, то выберите его.

      -или-

    • Выберите Новое подключение для открытия диалогового окна Добавить/изменить подключение.

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

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

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

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

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

Настройка таблицы клиентов на использование элемента управления ComplexDataGridView

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

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

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

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

  3. Щелкните стрелку раскрывающегося списка в узле Клиенты и выберите Настройка.

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

  5. Щелкните стрелку раскрывающегося списка в таблице Customers и выберите ComplexDataGridView в списке элементов управления.

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

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

Создание элементов управления с привязкой к данным на форме

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

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

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

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

Следующие действия

В зависимости от требований приложения существуют несколько шагов, которые, возможно, потребуется выполнить после создания элемента управления, поддерживающего привязку к данным. Некоторые типичные дальнейшие действия.

См. также

Задание поведения, при котором элемент управления создается при перетаскивании из окна "Источники данных"
Элементы управления Windows Forms
Привязка элементов управления Windows Forms к данным в Visual Studio
Подключение к данным в Visual Studio
Подготовка приложения к получению данных
Выборка данных в приложение
Привязка элементов управления к данным в Visual Studio
Редактирование данных в приложении
Проверка данных
Сохранение данных