datagridviewcomboboxcolumn
在未绑定的datagridview中使用a时,我遇到了一个奇怪的问题。该列最初填充了有效值,其中一些全为大写,一些混合大小写,但始终是唯一的。例如,“AB”、“AC”、“AiDA”、“AltCurr”、“BE”等。
选择任何大写项目时,一切正常。但是,如果我从单元格的下拉列表中选择一个大小写混合的项目,则会发出“单元格包含无效数据”DataError 事件,并且单元格选择“AB”(即无法找到选择,因此默认为到第一个条目)。
如果我将所有列表项都更改为大写,则不会出现问题(但实际上这不是一个选项!)。
我已经阅读了大量关于 BOUND datagridview 组合列中区分大小写的评论,解决方案是更改底层数据表上的区分大小写选项,但没有什么可以克服我的特定未绑定问题。
有没有其他人遇到过这个问题,如果有,你是如何解决的?
编辑:按要求编写代码示例...
Datagridviewcombobox 列已经在设计器中创建(col #2)。它从对象集合中填充如下:
m_subjectList = new SubjectList
for each sj as Subject in m_subjectlist
ctype(dgv.columns(2),datagridviewcomboboxcolumn).items.add(sj.SubjectCode) 'a string value
next
行是从基础数据表中手动添加的:
for each dr as datarow in ds.tables("Mappings").rows
dim r as integer = dgv.rows.add
dgv.rows(r).cells(2).value = dr("SubjectCode") 'varchar(10)
next
到目前为止一切正常 - DGV 正确显示,单元格组合中的值全部正确。不再需要代码。
现在,如果我单击任何这些行上的下拉菜单来更改主题,除非我选择“AiDA”或“AltCurr”项目(即混合大小写的项目),否则一切正常。dataerror 上下文是 Formatting | 展示。
如果我选择任何全部大写的列表项,则不会出现问题。在我看来,组合单元格在其 objectcollection 中没有找到混合大小写项目 - 底层组合对象集合的大小写敏感性与 DGV 用于检查集合内有效性的任何大小写敏感性存在差异。