在不触发ColumnChanged事件的情况下将DataRow添加到DataTable
本文关键字:DataRow 添加 DataTable 情况下 ColumnChanged 事件 | 更新日期: 2023-09-27 18:00:21
有没有一种方法可以在不触发DataTable
的ColumnChanged
事件的情况下将现有的DataRow
添加到DataTable
?我有一个连接到ColumnChanged
事件的事件处理程序,我想继续为表中的所有现有行运行该事件,但在将行添加到表中之前,我不希望它为新行激发(我不希望在添加行时激发)。
我试过:
table.ImportRow(rowToAdd); // causes the ColumnChanged event to fire
和
DataRow newRow = table.NewRow();
foreach (DataColumn col in table.Columns)
newRow[col.ColumnName] = rowToAdd[col.ColumnName]; // causes the ColumnChanged event to fire
table.Rows.Add(newRow);
我已经找到了一个解决方案,可以将当前添加的行存储在哪里,并在事件处理程序中检查该值,但如果有一种方法可以在不触发事件的情况下添加行,那将是最好的。
您可以使用table.Rows.Add(params Object[] values);
。例如
Object[] values = new Object[table.Columns.Count];
for (int i = 0; i < values.Length; i++)
values[i] = rowToAdd[table.Columns[i].ColumnName]; // not sure if order is consistent
table.Rows.Add(values);