单元格显示值成员(ID)而不是显示成员

时间:2015-05-21 21:28:54

标签: c# winforms datagridview datatable .net-3.5

我目前正在使用C#,我有以下代码在DGV中设置ComboBox列:

// Add the values of the combo box
dgvcbGeneric.DataSource = dtDataSource;
dgvcbGeneric.ValueMember = "ID";
dgvcbGeneric.DisplayMember = "Value";
dgvcbGeneric.DataPropertyName = strColumn;
dgvcbGeneric.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;

dgvcbGeneric.DisplayStyleForCurrentCellOnly = true;
// vGenericCMB.SortMode = DataGridViewColumnSortMode.Automatic

dgvcbGeneric.DefaultCellStyle.NullValue = columns[strActualColumn].nullFormat;

// Add the new ComboBoxColumn of the DGV
dgvLink.Columns.Add(dgvcbGeneric);

enter image description here

一切正常,但DGV仅在单元格具有焦点时显示成员值:

enter image description here

有人可以解释为什么会出现这个问题吗?

1 个答案:

答案 0 :(得分:3)

我自己发现了这个错误。基本上在DGV的DataSource中,列#34; Day"属于" Byte" (SQL中的tinyint)。 当代码尝试创建DataTable来填充DGV ComboBox列时; ID类型是"整数"。

解决方案是检查ID与列源的DataType。如果是不同的;抛出异常进行检查。