Как я могу обновить значение столбца (программно) в строке DataTable с помощью события RowChanged, не вызывая бесконечный цикл? (который я сейчас получаю)
Примечание. Я не хочу использовать свойство 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;