我正在构建一个具有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。
我尝试执行下面链接中给出的步骤,但这是给出索引而不是值。
答案 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;
}
}