选择更改时显示ValueMember

时间:2013-02-20 23:02:23

标签: vb.net winforms datagridview

我整天都在搜索我认为简单的概念,但这就是我的想法。

我有一个带有ComboBox列的DataGridView控件,该列使用DataTable作为其DataSource,如下所示:

    With CType(dgvICS213.Columns(GridCol("CostBasis").Name), DataGridViewComboBoxColumn)
        .DataSource = Common.ExecuteQuery("SELECT ID, CostBasis FROM ICS213CostBasis", CommandType.Text)
        .DisplayMember = "CostBasis"
        .ValueMember = "ID"
    End With

数据库表存储组合框中的值(ID)。

我使用DefaultValuesNeeded事件为DisplayMember(CostBasis)值设置新值:

Dim dgv As DataGridView = sender
CType(e.Row.Cells(GridCol("CostBasis").Index), DataGridViewComboBoxCell).Value = CType(dgv.Columns(GridCol("CostBasis").Index), DataGridViewComboBoxColumn).Items(0).Item(1)

我还使用DisplayMember值填充数据库查询中的现有行(处理DataError事件)

到目前为止,非常好,但是当我从combox中选择一个条目时,ValueMember将显示在组合而不是DisplayMember中。有人可以解释我哪里出错了。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并通过将数据库中的字段从byte更改为int16来解决了这个问题。