当“控件为数据绑定”时,DataGridView无法添加行.在XML加载之后
本文关键字:添加行 XML 之后 加载 DataGridView 控件 数据绑定 | 更新日期: 2023-09-27 18:16:51
我已经通过加载数据集从XML文件填充了一个DataGridView。然而,在我加载数据后,我不能再在运行时插入行,因为我得到这个错误:
"当控件为数据绑定时,不能以编程方式将行添加到datagridview的行集合中"
private void LoadBtn_Click(object sender, EventArgs e)
{
DTable.Clear();
DTable.Reset();
var ds = new DataSet();
ds.ReadXml(@"C:'setup.xml", XmlReadMode.ReadSchema);
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
DTable.Columns.Add(col.Name);
col.DataPropertyName = col.Name;
}
//dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = ds.Tables["TableName"];
}
我理解这个问题的概念我想。如果我的XML文件只包含7行,并且是DataGridView的源,那么它被绑定到7行,并且不能添加更多,但我希望用户能够动态更改这一点,然后重新保存XML。我知道如何重新保存,只是不知道如何"解锁"行问题。
很多谢谢,汤姆
DataGridView的数据源是表。在这种情况下,您可以向表中添加行,它们将显示在DataGridView中。
为什么不先添加到DataRow
,然后保存到XML
,然后重新填充DataGridView
,如:
添加到DataRow
:
DataRow dr = ds.Tables["TableName"].NewRow();
dr["FieldName1"] = value1;
dr["FieldName2"] = value2;
ds.Tables["TableName"].Rows.Add(dr);
Save to XML
:
ds.WriteXml(@"C:'setup.xml");
重新填充DataGridView
:
dataGridView1.DataSource = ds.Tables["TableName"];
但这是假设你的DataSet
命名为ds
(在这种情况下)是全局声明的