Вычислить поле

Fedishen
Дата: 12.01.2005 12:56:01
Мне необходимо вычислить поле, значением которого является разница двух других полей типа DateTime, загвоздка вся в том, что в свойстве поля expression нельзя записать что то вроде:
поле1.Subtract(поле2).TotalMinutes или поле1 - поле2 он не понимает операцию "-" над полями DateTime,
а в событии RowChanging нельзя присваивать полям значения.
Так где же мне вычислить это поле и как?
Oleg Lugovskiy
Дата: 12.01.2005 13:07:41
System.TimeSpan vage_days;
days = (DateTime)date1 - (DateTime)date2;
Sa
Дата: 12.01.2005 13:09:47
Почему вы не можете воспользоваться:
RowChanged
RowChanging
ColumnChanged
Fedishen
Дата: 12.01.2005 13:17:17
Oleg Lugovskiy
System.TimeSpan vage_days;
days = (DateTime)date1 - (DateTime)date2;


Спасибо, догадался, но куда это предлагаете вставить? Что бы колонка у меня отображала вот этот days
Oleg Lugovskiy
Дата: 12.01.2005 13:28:35
а какой сорс датагриду присваиваете?
Fedishen
Дата: 12.01.2005 13:31:40
Sa
Почему вы не можете воспользоваться:
RowChanged
RowChanging
ColumnChanged


Воспользоваться то могу, но в RowChanging нельзя присваивать полям значения.
Если написать:
private static void ShipmentDTRowChanging(object sender, DataRowChangeEventArgs e)
{
e.Row["LoadingTime"] = 1;
}
вывалится Exception:
Cannot change a proposed value in the RowChanging event
в событии RowChanged то-же хрень какая-то лезет.
а вот событие .ColumnChanged....хм, заработало. Но оно срабатывает n-раз. Т.е очень много раз оно работает, надо разобраться почему.
Fedishen
Дата: 12.01.2005 13:32:32
Oleg Lugovskiy
а какой сорс датагриду присваиваете?


DataTable
Oleg Lugovskiy
Дата: 12.01.2005 13:35:15
в сорсе поменять
Fedishen
Дата: 12.01.2005 13:37:37
Oleg Lugovskiy
в сорсе поменять

А я где по вашему меняю? (см. самое верхнее сообщение)
Sa
Дата: 12.01.2005 13:45:40
Вы вычисляемое поле тоже меняете, -> и n раз. Сделайте так чтобы ColumnChanged не реагировал на вычисляемый столбец.

Например используя e.Column.ColumnName