Войти



Поиск

Реклама

Полезное:

Новые статьи

Опечатка?

Выделите текст и нажмите Shift+Enter.
И мы в ближайшее время ее исправим!

Счетчики


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

Еще одна типичная задача - заполнение поля списка или комбинированного списка. Пример такого рода был показан в листинге 3.1. Код для привязки поля комбинированного или простого списка немногим отличается от кода для привязки данных к сетке. Разница состоит в том, каким образом специфицируется то свойство в коллекции, которое будет использоваться для представления данных в элементе управления (DisplayMember), и свойство, в котором будет содержаться ассоциированное значение (ValueMember).

Значение свойства, установленного в качестве ValueMember для текущего элемента комбинированного или простого списка, во время выполнения доступно через свойство SelectedValue элемента управления. Взгляните, например, на форму, показанную на 3.2.

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

В этом примере комбинированные списки привязаны к таблице Customers в типизированном наборе данных. Для каждого элемента в таблице

Customers их свойства DisplayMember будут показывать в тексте списков соответственно свойства CompanyName и ContactName. Кроме того, в ValueMember первого комбинированного списка установлено свойство CustomeriD, а для второго списка задано свойство Phone. Благодаря этому свойство SelectedValue комбинированного списка будет давать значение свойства ValueMember, принадлежащее выбранному в данный момент элементу списка. В коде листинга 3.3 свойство SelectedValue для каждого из комбинированных списков прочитывается обработчиком события SelectedlndexChanged и устанавливается в свойстве Text соответствующего текстового поля.

Лучше было бы сделать то же самое, непосредственно привязав данные к текстовым полям, но в этом коде мы хотели продемонстрировать использование свойства SelectedValue и то, как оно соотносится со свойством ValueMember. Более распространенное решение заключается в том, чтобы для заполнения текстового поля не использовать свойство SelectedValue, а выполнить запрос к базе данных для поиска CustomeriD, содержащегося в свойстве SelectedValue первого комбинированного списка. Так обычно и поступают, когда имеется обширный набор данных, который нецелесообразно держать в памяти для того только, чтобы отобразить в комбинированном или простом списке единственный столбец, но требуется работать в коде со всей строкой, соответствующей сделанному выбору.




Newer news items:
Older news items:

 
Главная Страница Контактная Информация Поиск по сайту Контактная Информация Поиск по сайту