c#获取DatagridviewComboBoxCell的选定值

时间:2016-12-15 19:10:40

标签: c# winforms datagridview datagridviewcomboboxcell

我正在构建一个具有DataGridView的Winforms应用程序。 DataGridView未绑定到数据源。我的网格上有comboboxColumn,我使用datatable进行填充。

当我尝试检索comboBoxCell的selectedValue时,它会给出第一个匹配的值而不是精确选择的值。

Convert.ToString((datagridview1.Rows[i].Cells["columnName"] as DataGridViewComboBoxCell).Value)

例如, 组合框数据表是

DisplayMember ValueMember
Orange        1111
Apple         2222
Banana        3333
Apple         4444
Guava         5555

现在,如果我选择ID为4444的Apple,上面的代码将获得Apple 2222。

我尝试执行下面链接中给出的步骤,但这是给出索引而不是值。

https://stackoverflow.com/a/30157754/3619679

1 个答案:

答案 0 :(得分:0)

我可以通过以下链接

解决问题

https://stackoverflow.com/a/30157754/3619679

SelectedItem存储所选组合框项的正确值。

private void datagridview1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            if (cmbCombo != null)
            {
                DataRowView oDataRowView = cmbCombo.SelectedItem as DataRowView;
                string sValue = string.Empty;

                if (oDataRowView != null)
                {
                    sValue = oDataRowView.Row["ValueMemberID"] as string;
                }
                datagridview1[e.ColumnIndex, e.RowIndex].Tag = sValue;
            }

        }