Вы встретите в основном три типа назначения:
1. record.Field = "value"
2. cache.SetValue<T>
3. cache.SetValueExt<T>
Метод 1 и 2 по сути одинаковы.Они присваивают значение без поднятия событий.Практическое отличие состоит в том, что с помощью метода 2 вы можете избежать приведения.
// 1. With cast
ShipmentLine line = e.Row as ShipmentLine;
if (line != null)
{
line.Description = "value";
}
// 2. Without cast
sender.SetValue<ShipmentLine.description>(e.Row, "value");
SetValueExt следует использовать, когда вы хотите, чтобы назначение вызывало события FieldUpdated.Многие поля пользовательского интерфейса вызывают события, когда пользователь изменяет их значение.Если пользователь изменит количественные поля заказа на продажу, он вызовет события FieldUpdated, которые, в свою очередь, пересчитают общую цену.
Если вы должны были программно изменить количество из кода, вы должны использовать SetValueExt, поскольку это обеспечит пересчет общей стоимости с использованием системы событий.Это особенно полезно, когда вы пытаетесь повторить действия пользователя на экране, поскольку пользовательский интерфейс по умолчанию контролирует все события рейса.