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


Практическое руководство. Создание таблицы подстановки для элемента управления ComboBox, ListBox или CheckedListBox в Windows Forms

Иногда полезно отображать данные в удобном для пользователя формате в форме Windows Forms, и при этом сохранять их в формате, требуемом в используемой программе. Например, в бланке заказа продуктов питания могут отображаться элементы меню по их имени в списке элементов. Однако таблица данных регистрации заказа будет содержать уникальные идентификаторы, представляющие продукты питания. В следующей таблице представлен пример хранения и отображения данных бланка заказа продуктов питания.

OrderDetailsTable

OrderID

Код элемента

Количество

4085

12

1

4086

13

3

ItemTable

Идентификатор

Имя

12

Картофель

13

Цыпленок

В этом сценарии одна таблица, OrderDetailsTable, содержит фактические сведения, интересующие с точки зрения отображения и сохранения. Однако с целью экономии места они представлены в неудобном для восприятия виде. Другая таблица, ItemTable, включает только данные, связанные с представлением, а именно о том, какой код какому продукту соответствует, данные о фактических заказах продуктов в ней отсутствуют.

ItemTable связывается с элементом управления ComboBox, ListBox или CheckedListBox с помощью трех свойств. Свойство DataSource содержит имя данной таблицы. Свойство DisplayMember содержит столбец данных той таблицы, который необходимо отобразить в элементе управления (название продукта). Свойство ValueMember содержит столбец данных таблицы с сохраняемыми данными (идентификатор).

Таблица OrderDetailsTable связывается с элементом управления с помощью коллекции привязок, доступных через свойство DataBindings. При добавлении объекта привязки в коллекцию свойство элемента управления связывается с конкретным элементом данных (столбцом кодов) в источнике данных (таблице OrderDetailsTable). Когда в элементе управления сделан выбор, в данной таблицей сохраняются вводимые данные.

Создание таблицы подстановок

  1. Добавьте на форму элемент управления ComboBox, ListBox или CheckedListBox.

  2. Произведите подключение к источнику данных.

  3. Установите связь между данными в двух таблицах. Дополнительные сведения см. в следующем разделе. Знакомство с объектами DataRelation и Знакомство с объектами DataRelation и Знакомство с объектами DataRelation и Знакомство с объектами DataRelation.

  4. Задайте следующие свойства. Они могут быть заданы в коде или в конструкторе.

    Свойство

    Параметр

    DataSource

    Таблица, в которой содержатся сведения о том, какому коду соответствует какой элемент. В вышеприведенном сценарии это ItemTable.

    DisplayMember

    Столбец таблицы источника данных, который необходимо отобразить в элементе управления. В вышеприведенном сценарии это "Name" (для задания в коде используйте кавычки).

    ValueMember

    Столбец таблицы источника данных, который содержит сохраняемую информацию. В вышеприведенном сценарии это "ID" (для задания в коде используйте кавычки).

  5. В процедуре вызовите метод Add класса ControlBindingsCollection для привязки свойства SelectedValue элемента управления к таблице, регистрирующей ввод формы. Кроме того, вместо кода это можно сделать в конструкторе с помощью свойства DataBindings элемента управления в окне Свойства. В вышеприведенном сценарии это OrderDetailsTable, а столбец — "ItemID".

    ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")
    
    listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");
    
    listBox1.get_DataBindings().Add("SelectedValue", OrderDetailsTable, "ItemID");
    

См. также

Ссылки

Общие сведения об элементе управления ListBox (Windows Forms)

Общие сведения об элементе управления ComboBox (Windows Forms)

Общие сведения об элементе управления CheckedListBox (Windows Forms)

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

Связывание данных и Windows Forms

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

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