我有一個Datagridview綁定數據庫中的數據。Datagridviewcombobox列的單元格顯示ValueMember而不是DisplayMember
DataGridViewTextBoxColumn colOperationID = new DataGridViewTextBoxColumn();
colOperationID.Name = "OperationID";
colOperationID.DataPropertyName = "OperationID";
BOMOperations.Columns.Add(colOperationID);
DataGridViewComboBoxColumn colOperationDesc = new DataGridViewComboBoxColumn();
colOperationDesc.Name = "OperationDesc";
colOperationDesc.DataSource = srcDT;
colOperationDesc.DisplayMember = "OperationDesc";
colOperationDesc.ValueMember = "OperationID";
colOperationDesc.DataPropertyName = "OperationDesc";
colOperationDesc.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
colOperationDesc.DefaultCellStyle.BackColor = Color.White;
colOperationDesc.DisplayStyleForCurrentCellOnly = true;
BOMOperations.Columns.Add(colOperationDesc);
然後用戶將點擊編輯按鈕,datagridview將變爲可編輯。我的問題是,當我點擊datagridviewcombobox列,然後我會選擇一個項目,該項目將正確顯示(DisplayMember),但只要細胞失去焦點,組合框的單元顯示ValueMember。
我已經嘗試了我在這裏檢查數據類型的解決方案,但是我的是正確的。 DisplayValue是一個字符串,而DisplayValue是一個int。
我也試過將colOperationDesc.DataPropertyName = "OperationDesc";
改爲colOperationDesc.DataPropertyName = "OperationID";
,它給了我這個例外。 exception
我已經嘗試更改colOperationDesc.DataPropertyName =「OperationID」,但它給了我一個System.Exception不是Int32的有效值。 –
Zhyke
@Zhyke - 請檢查「colOperationDesc.ValueMember」和「colOperationDesc.DisplayMember」中使用的屬性/列是否存在於srcDT變量 – Fabio
中,它們存在於數據表srcDT中。我更新了我的帖子,並上傳了我更改DataPropertyName時得到的異常。這裏是我的數據源代碼:'cmd = new SqlCommand(); srcDT = new DataTable(); cmd.CommandText =「SELECT OperationID,OperationDesc FROM Operation」; srcDT = _SQL.GetData(cmd); colOperationDesc.DataSource = srcDT; colOperationDesc.ValueMember =「OperationID」; colOperationDesc.DisplayMember =「OperationDesc」;' – Zhyke