如何通过使用 RowChanged 事件更新 DataTable 的行中的列值(以编程方式),而不触发无限循环?(我目前得到)
注意我不想使用 DataColumn.Expression 属性。
例如,以下给了我一个递归循环和堆栈溢出错误:
DataColumn dc = new DataColumn("OverallSize", typeof(long));
DT_Webfiles.Columns.Add(dc);
DT_Webfiles.RowChanged += new DataRowChangeEventHandler(DT_Row_Changed);
private static void DT_Row_Changed(object sender, DataRowChangeEventArgs e)
{
Console.Out.WriteLine("DT_Row_Changed - Size = " + e.Row["OverallSize"]);
e.Row["OverallSize"] = e.Row["OverallSize"] ?? 0;
e.Row["OverallSize"] = (long)e.Row["OverallSize"] + 1;
}
谢谢
PS。事实上,使用 RowChanging 事件(而不是 RowChanged)对我来说是有意义的(也就是说,在保存之前更改值)但是当我尝试这个时,我在以下行得到“无法更改 RowChanging 事件中的建议值”在处理程序中:
e.Row["OverallSize"] = e.Row["OverallSize"] ?? 0;