C# 无法编辑DataGridView中的单元格(未保存更改)

C# 无法编辑DataGridView中的单元格(未保存更改),c#,list,datagridview,datasource,bindingsource,C#,List,Datagridview,Datasource,Bindingsource,我创建了一个DataGridView,然后将其绑定到列表中,如下所示: public struct singleFieldFrame { //text and URL frames private string id; private string text; public string id_p { get { return id; } } public

我创建了一个DataGridView,然后将其绑定到列表中,如下所示:

public struct singleFieldFrame
        {
            //text and URL frames
            private string id;
            private string text;

            public string id_p { get { return id; } }

            public string text_p { get { return text; } set { text = value; } }

            public singleFieldFrame(string frameID, string data): this()
            {
                id = frameID;
                text = data.Replace('\0', ';');
            }
        }
...
public static List<singleFieldFrame> singleFieldFrames;
...

// this struct and singleFieldFrames which is a List of singleFieldFrame reside in the public class
// dataGridView definition is inside another public class (namespace is the same)

    var bindingList1 = new BindingList<ID3v2tag.singleFieldFrame>(ID3v2tag.singleFieldFrames);
                    source1= new BindingSource(bindingList1, null);
                    dataGridView1.DataSource = source1;
公共结构singleFieldFrame
{
//文本和URL框架
私有字符串id;
私有字符串文本;
公共字符串id_p{get{return id;}}
公共字符串text_p{get{return text;}set{text=value;}}
publicsinglefieldframe(stringframeid,stringdata):this()
{
id=帧id;
text=data.Replace('\0',';');
}
}
...
公共静态列表单字段框架;
...
//此结构和singleFieldFrames(singleFieldFrame的列表)位于公共类中
//dataGridView定义位于另一个公共类内(命名空间相同)
var bindingList1=新的BindingList(ID3v2tag.singleFieldFrames);
source1=新的BindingSource(bindingList1,null);
dataGridView1.DataSource=source1;

我的问题是无法更改dataGridView1中的任何单元格。当我离开编辑模式时,单元格值会自动重置回上一个值。

我可能弄错了,但是从我的测试来看,
struct
似乎不允许您更改值。你考虑过把它变成一个“班级”吗?它成功了!非常感谢你!另外,我想知道为什么结构不适合我的情况…我不能肯定,看看这个问题,它可能会有帮助…我可能会弄错,但是从我的测试来看,
struct
似乎不允许您更改值。你考虑过把它变成一个“班级”吗?它成功了!非常感谢你!另外,我想知道为什么结构不适合我的情况…我不能肯定,看看这个问题,它可能会有帮助…