使用ValueMember属性的值

Bla*_*ake 1 vb.net winforms

我试图检索存储在ComboBox的"ValueMember"属性中的值.我按照以下帖子的建议:如何从ComboBox C#Winforms获得ValueMember值?

不幸的是它不起作用.以下是我的代码:

Private Sub LoadCategoryCombo()
    Dim ds As New DataSet

    ds = GetCategoryData()

    If Not IsNothing(ds) Then
        cmbCategory.DataSource = ds.Tables(0)
        cmbCategory.DisplayMember = "category"
        cmbCategory.ValueMember = "abbrev"
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我要做的是当我从下拉列表中选择一个值时,我希望显示存储在"ValueMember"字段中的值,但是,它只显示"abbrev".我究竟做错了什么?

谢谢,

Ste*_*eve 6

您应该使用属性Value not ValueMember

Dim valueMemberValue = cmbCategory.SelectedValue.ToString()
Run Code Online (Sandbox Code Playgroud)

属性ValueMember它只是要从中检索值的列的名称,而DiplayMember是要从中填充项集合的列的名称.
因此,设置ValueMember,当用户从Items集合中选择不同的项时,您告诉ComboBox更新其Value属性.组合查看所选项目的同一行中存在的相应值,但在通过ValueMember属性命名的列中