我已经看到很多涉及数据绑定的解决方案,但我没有数据源。在这种情况下,组合单元格仅适用于 1 行(其他行没有 DataGridViewComboBoxCell)。
我像这样设置了一个 DataGridViewComboCell :
DataGridViewComboBoxCell cell = new DataGridViewComboBoxCell();
cell.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
cell.Items.AddRange(items.ToArray()); // items is List<string>
我稍后会像这样动态地重新填充它:
_cell.Items.Clear();
_cell.Items.AddRange(this.Data.ResponseOptions.Select( d => d.Description).ToArray());
//d.Description is of type string
但是后来我得到了这个讨厌的对话框,上面写着:
DataGridView 发生以下异常: System.ArgumentException: DataGridViewComboBoxCell 值无效。要替换此默认对话框,请处理 DataError 事件。
顺便说一句,说它不是“有效的”并没有多大帮助。向 MS 发送电子邮件说 Windows 窗体无效是否公平?
我尝试获取单元格的 items 属性并使用 foreach() 和 Add() 调用添加字符串。我仍然得到对话框。
每次我想更新它并从头开始重新创建一个新的 DataGridViewComboCell 时,我也尝试过吹走整个单元格。我仍然得到对话框。
我也尝试过手动覆盖列值(当我没有这个问题时成功)。不过没修。
当我试图重新填充组合单元格中的项目时,我似乎只得到这个对话框。
现在我只是清除了 DataError 方法。
有什么建议么?