我在使用未綁定的datagridview中的datagridviewcomboboxcolumn
時遇到了一個奇怪的問題。該列最初使用有效值填充,其中一些全部是大寫字母和一些混合大小寫,但始終是唯一的。例如,「AB」,「AC」,「AiDA」,「AltCurr」,「BE」等未綁定Datagridviewcomboboxcolumn值是否區分大小寫?
當選擇任何大寫字母項目時,一切正常,但如果選擇其中一種混合 - 單元格中的下拉式項目,「單元格包含無效數據」DataError事件發出,並且單元格選擇「AB」(即無法找到選擇,因此它默認爲第一個條目)
如果我將所有列表項目都更改爲大寫,則問題不會發生(但實際上這不是一個選項!)。
我已閱讀了大量有關BOUND datagridview組合列中的區分大小寫的評論,並提供瞭解決方案正在改變底層dat上的大小寫敏感選項可以的,但沒有任何東西能夠克服我的具體無約束的問題。
有沒有人遇到過這個,如果是的話,你是如何修復它的?
編輯:代碼示例的要求...
的Datagridviewcomboboxcolumn在設計師已經創建(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'項目(即混合大小寫),否則它一切正常。數據錯誤上下文是Formatting |顯示。
如果我選擇全部爲大寫的任何列表項,則不會出現該問題。在我看來,組合單元格在其對象集合中找不到混合大小寫項目 - 底層組合對象集合的區分大小寫以及DGV用來檢查集合內的有效性的大小寫敏感性存在差異。
你能展示一些你的數據和適當的代碼的例子嗎?這會讓人們更容易明白爲什麼會收到錯誤。 –
按請求添加的代碼示例 – Derek
有關數據的示例已在原始文章的第一段中提供。 – Derek