我只是不能让它工作。我在 winforms 中有一个 datagridview,在我的这一列中是一个 DataGridViewComboBoxColumn。
在我的构造函数中,我像这样设置它
DataGridViewComboBoxColumn column = (DataGridViewComboBoxColumn)RectangleGrid.Columns["Material"];
DataTable data = new DataTable();
data.Columns.Add(new DataColumn("Value", typeof(int)));
data.Columns.Add(new DataColumn("Description", typeof(string)));
foreach (Materials M in DataStructure.Active.Active_Materials)
{
data.Rows.Add(M.MaterialNr, (M.MaterialNr + 1).ToString() + " " + M.Material.Name);
}
column.DataSource = data;
column.ValueMember = "Value";
column.DisplayMember = "Description";
它实际上运行良好,只是在我想要的下拉框中没有选择任何内容。我已经用谷歌搜索了这个,例如尝试了这种方法: http: //goo.gl/kBy8W但没有成功,因为 EditingControlShowing 仅在我单击该框时发生,而不是在它第一次出现时发生(因此我可以设置选定的索引一旦它被点击但那不好)。CellFormatting 版本至少会更改值,但它只是将一个字符串放在那里,而不是我的数据源中的第一个索引。
我也试过这个
column.DefaultCellStyle.NullValue = data.Rows[0]["Description"];
column.DefaultCellStyle.DataSourceNullValue = data.Rows[0]["Value"];
这似乎有效,但是当我在下拉列表中选择第一个索引时(所以下拉下拉列表,然后选择第一个索引,然后取消选择单元格)我从 ParseFormattedValue 收到一个错误,它说它不能将“值”转换为系统.字符串。
这似乎是在正确的轨道上,但我无法让它工作:http: //goo.gl/VevA3