1
我有一个绑定到DataTable'ExcludedMachines'的DataGridView'DGV_MachinesExclusion'。在DataGridView中手动添加新行时,我使用DataGridView的CellValueChanged事件触发下面的代码。向数据表动态添加行添加两行
private void DGV_MachinesExclusion_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
DataRow dr = ExcludedMachines.NewRow();
dr = ((DataRowView)DGV_MachinesExclusion.Rows[0].DataBoundItem).Row;
ExcludedMachines.Rows.Add();
UpdateExlusionList();
}
结果是它增加了两行。一个空白行和一个手动添加数据的行。 方法'UpdateExclusionList()'只是将DataTable写入XML文件。 我曾经用这种方式在过去成功地动态添加行。任何人都可以解释为什么此代码添加两行?
THX,托马斯
你是正确的,它添加一个白色的行,因为该行没有填充。我已经改变了这一点,但它只是增加了两个有填充的行。 'UpdateExclusionList()'方法肯定不会添加行,因为我测试了没有此方法之上的代码的事件。 DataTable没有任何事情发生。 –
另外,当我在事件中休息时,它只会停止一次。所以我不认为这个事件会被触发两次。当我离开这行:'ExcludedMachines.Rows.Add()'没有被添加到DataTable中时... –
这意味着问题在于DataRow行。你有没有尝试: 'DataRow dr =((DataRowView) –