Практическое руководство. Создание таблицы подстановки для элемента управления ComboBox, ListBox или CheckedListBox в Windows Forms
Иногда полезно отображать данные в удобном для пользователя формате в форме Windows Forms и при этом сохранять их в формате, требуемом в используемой программе. Например, в бланке заказа продуктов питания могут отображаться элементы меню с названиями продуктов в списке. Однако таблица данных регистрации заказа будет содержать уникальные идентификаторы, представляющие продукты питания. В таблице ниже представлен пример хранения и отображения данных бланка заказа продуктов питания.
OrderDetailsTable
OrderID | Код элемента | Количество |
---|---|---|
4085 | 12 | 1 |
4086 | 13 | 3 |
ItemTable
ID | name |
---|---|
12 | Картофель |
13 | Цыпленок |
В этом случае одна таблица OrderDetailsTable, содержит фактические сведения, важные с отображения и сохранения. Однако с целью экономии места они представлены в неудобном для восприятия виде. Другая таблица, ItemTable, содержит только связанные сведения о том, какой идентификатор номер эквивалент для определения имени качества пищевых продуктов и ничего о заказах на фактический качества пищевых продуктов.
ItemTable подключен к ComboBox, ListBox, или CheckedListBox управления с помощью трех свойств. DataSource
Свойство содержит имя этой таблицы. DisplayMember
Свойство содержит столбец данных таблицы, который будет отображаться в элементе управления (название продукта). ValueMember
Свойство содержит столбец данных таблицы, в которой хранится информация (номер идентификатора).
OrderDetailsTable подключен к элементу управления с помощью коллекции привязок, через DataBindings свойство. При добавлении объекта привязки в коллекцию свойство элемента управления соединиться элемент данных (столбец идентификаторов) в источнике данных ( OrderDetailsTable). Когда в элементе управления делается выбор, в этой таблице сохраняются вводимые данные.
Создание таблицы подстановок
Добавьте на форму элемент управления ComboBox, ListBox или CheckedListBox.
Произведите подключение к источнику данных.
Установите связь между данными в двух таблицах. См. в разделе Знакомство с объектами DataRelation.
Задайте перечисленные ниже свойства. Их можно задать в коде или в конструкторе.
Свойство Параметр DataSource Таблица, в которой содержатся сведения о том, какому коду соответствует тот или иной элемент. В приведенном выше сценарии это ItemTable
.DisplayMember Столбец таблицы источника данных, который необходимо отобразить в элементе управления. В приведенном выше сценарии это "Name"
(Чтобы задать в коде, используйте кавычки).ValueMember Столбец таблицы источника данных, который содержит сохраняемую информацию. В приведенном выше сценарии это "ID"
(Чтобы задать в коде, используйте кавычки).В процедуре вызовите метод Add класса ControlBindingsCollection для привязки свойства SelectedValue элемента управления к таблице, в которой регистрируются данные, вводимые в форме. Также это можно сделать в конструкторе, а не в коде, обратившись к элемента управления DataBindings свойство в свойства окна. В приведенном выше сценарии это
OrderDetailsTable
, а столбец"ItemID"
.ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")
listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");