Combobox选择值返回DataRowView

Ana*_*pan 11 .net vb.net winforms

我将combobox.datasource设置为dataview项(以便它绑定到表),当我从combobox.selectedvalue获取返回值时.返回错误bcos是"system.data.datarowview"类型

我不知道为什么它的返回值通常是文本

代码 :

 If ldstList.Tables(0).Rows.Count <> 0 Then
                        With CbStatus
                            .DataSource = ldstList.Tables(0)
                            .DisplayMember = "CardStatus"
                            .ValueMember = "StatusID"
                        End With
                    End If

If Integer.Parse(CbStatus.SelectedValue) > 0 Then
    GridLoad(Integer.Parse(CbStatus.SelectedValue))
End If
Run Code Online (Sandbox Code Playgroud)

And*_*ens 29

无论其他问题或解决方案如何,请确保按正确的顺序设置ComboBox的属性:

.DisplayMember = ...;
.ValueMember = ...;
.DataSource = ....;  // Notice how this one is last?
Run Code Online (Sandbox Code Playgroud)

首先设置DataSource属性将导致"system.data.datarowview"问题.

  • 我遇到了这个问题,并发现在几种情况下我已经在其他两个之前设置了`DataSource`.设置`DataSource`最后为我修复了它. (2认同)

Ana*_*pan 2

我不知道为什么会出现这个问题。但我找到了解决方案:

If Integer.Parse(DirectCast(CbStatus.SelectedItem, DataRowView).Item("StatusID")) > 0 Then
  GridLoad(Integer.Parse(DirectCast(CbStatus.SelectedItem, DataRowView).Item("StatusID")))
End If
Run Code Online (Sandbox Code Playgroud)

感谢那些回答的人,如果您有的话,请发布解释或更好的解决方案。