[英]Making a DataGridView column editable after binding it to a BindingList<T>
我有一個DataGridView
並將其綁定到BindingList<KeyValuePair<string, float>>
。 這是代碼的相關部分:
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
。
問題是KeyValuePair
類的Key
和Value
屬性是只讀的。 解決方案是創建一個具有public setter
以表示數據的新類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.