Заполните ComboBox с помощью DataSet

Вы хотите, чтобы первый >, которому не предшествовал /. Посмотрите здесь , чтобы узнать, как это сделать.

Однако наивная реализация этого приведет к сопоставлению в этом примере документа


Можете ли вы предоставить немного больше информации о проблема, которую вы пытаетесь решить? Вы выполняете итерацию через теги программно?

0
задан Jimi 17 January 2019 в 23:10
поделиться

1 ответ

При назначении сложного объекта как DataTable свойству DataSource элементов управления ComboBox или ListBox укажите, используя свойство DisplayMember , которое Column [ 1122] объекта DataTable следует использовать в качестве источника для отображения текста элементов ListControl.

Если выбранный элемент также должен возвращать значение, отличное от отображаемого текста, также установите для свойства ValueMember имя столбца, предоставляющего связанные значения.
Возможно, до установки ссылки на источник данных элемента управления (чтобы избежать избыточных итераций базовых данных).

Давайте создадим DataTable для проверки процедуры:

Назначьте DataTable для DataSource элемента управления ComboBox, указав в качестве DisplayMember имя столбца, который предоставляет текст отображать и как ValueMember имя столбца, который предоставляет дополнительные данные, которые будут возвращены свойством ComboBox.SelectedValue при изменении пользователем SelectedItem :

Dim dt As New DataTable("TestTable")
dt.Columns.AddRange({
    New DataColumn("Names", GetType(String)), 
    New DataColumn("Values", GetType(Integer))
})

Dim row As DataRow = dt.NewRow()
row.ItemArray = New Object() {"Some Name", 1}
dt.Rows.Add(row)
row = dt.NewRow()
row.ItemArray = New Object() {"Some OtherName Jr.", 2}
dt.Rows.Add(row)
row = dt.NewRow()
row.ItemArray = New Object() {"Another Name", 3}
dt.Rows.Add(row)
row = dt.NewRow()
row.ItemArray = New Object() {"Last Name", 4}
dt.Rows.Add(row)

ComboBox1.DisplayMember = "Names"
ComboBox1.ValueMember = "Values"
ComboBox1.DataSource = dt.DefaultView

Private Sub ComboBox1_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles ComboBox1.SelectionChangeCommitted
    Dim cbo = DirectCast(sender, ComboBox)
    TextBox1.Text = cbo.GetItemText(cbo.SelectedValue)
End Sub

Результат:

enter image description here

0
ответ дан Jimi 17 January 2019 в 23:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: