可能原因:

 

1、下拉選單的選項資料繫結晚於 DataGridView 的資料繫結

2、下拉選單的 DataPropertyName 屬性,比 DisplayMember、ValueMember 早賦值

3、賦予 DataGridView 下拉選單的值,不在下拉選單的選項裡

4、賦予 DataGridView 下拉選單的值型別,與下拉選單的值型別不一致

網路上許多文章都指出,可用 DataError 事件排除掉這個錯誤提示,但這只是治標不治本。換句話來說就只是讓程式不提示這個錯誤而已,根本的問題還是沒解決。以下是筆者建議的解決方式:

 

1、當然就是先繫結下拉選項資料,再繫結 DataGridView,無論你的程式結構有多少層。

2、當然就是調整 DataPropertyName、DisplayMember、ValueMember 賦值的順序。

3、處理不在選項內的值,選項若有自己的資料來源,那麼就連同這個資料來源加上不在選項內的項目,全部用 Items.Add 做繫結,不要用 DataSource。要注意!Items.Add 和 DataSource 無法並存,關於這個部份,可以參考微軟官方的 MSDN 說明,重點摘錄如下:

Items 或 DataSource 属性用于填充组合框的选项。

如果已将字符串添加到 Items,则无需设置 ValueMember 和 DisplayMember 属性,因为添加的每个字符串都会用于值和显示。

4、型別不一致的狀況,目前還沒遇到,故暫時不給意見。

posted on 2016-03-29 10:20  吉格艾諾  阅读(260)  评论(0编辑  收藏  举报