2
我有一個DataGridView
,我將它綁定到BindingList<KeyValuePair<string, float>>
。以下是代碼的相關部分:將DataGridView列綁定到BindingList後編輯它<T>
dgv.AutoGenerateColumns = false;
DataGridViewTextBoxColumn firstColumn = new DataGridViewTextBoxColumn();
firstColumn.DataPropertyName = "Key";
firstColumn.HeaderText = "First Column";
DataGridViewTextBoxColumn secondColumn = new DataGridViewTextBoxColumn();
secondColumn.DataPropertyName = "Value";
secondColumn.HeaderText = "Second Column";
secondColumn.ReadOnly = false;
secondColumn.ValueType = typeof(float);
dgv.Columns.Add(firstColumn);
dgv.Columns.Add(secondColumn);
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dgv.MultiSelect = false;
dgv.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2;
dgv.ReadOnly = false;
_bindingList = new BindingList<KeyValuePair<string, float>>(_someList);
dgv.DataSource = _bindingList;
但是第二列仍然不可編輯。我應該怎麼做才能使第二欄可編輯,而第一欄不可以?
編輯:我希望更改反映在BindingList
實例本身。
編輯2:我已經在代碼末尾添加這一行,現在我得到一個錯誤:
dgv.Columns[1].ReadOnly = false;
我得到這個錯誤:
DataGridView column bound to a read-only field must have ReadOnly set to True.
編輯3:問題似乎是我在我的清單中使用KeyValuePair
s。
此時,您的BindingList是否有任何數據? – Derek
它確實有數據。我可以看到'BindingList'中的所有元素。但我無法編輯第二列。 – hattenn