簡體   English   中英

將DataGridView列綁定到BindingList之后使其可編輯<T>

[英]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類的KeyValue屬性是只讀的。 解決方案是創建一個具有public setter以表示數據的新類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM