近日開發一個基於WinForm的工具,用到了DataGridViewComboBoxColumn。工具
關於數據:.net
問題出現:orm
考慮到使用時,用戶會對特定項設置空值,因而在列表中加入了一個{Text = string.Empty, Value = null}的項目。blog
但Debug時設空值報錯,彈出提示稱:「System.ArgumentException: 不能將 Column "XXX" 設置爲null。請改用DBNull。……要替換此默認對話框,請處理 DataError 事件。」事件
因而按要求把Value改爲了DBNull.Value,再運行……開發
問題依舊!字符串
搜索關鍵詞,找到如下內容:get
http://blog.csdn.net/cnjack/article/details/4561376string
大意是添加DataGridView.DataError事件的處理,並讓處理爲空,以此屏蔽這個錯誤。io
再運行,再也不報錯,但空值也不能正確寫入數據源。看來這個方法在這裏只是治標不治本。
試圖在DataError事件處理中加入對空值的處理,無果。
在反覆的嘗試中,最終找的解決方法:
把Text設爲非空字符串(不能爲null或string.Empty)
原理不明……
其餘注意事項: