У меня есть AdvancedDataGrid с пользовательской функцией метки, значение которой может меняться в зависимости от состояния другой формы (в частности, есть выпадающий список для выбора формата отображения времени для некоторых столбцов).
Прямо сейчас у меня есть этот ярлыкФункция:
internal function formatColumnTime(item: Object, column: AdvancedDataGridColumn): String {
var seconds: Number = item[column.dataField];
return timeFormat.selectedItem.labelFunction(seconds);
}
internal function formatTimeAsInterval(time: Number): String {
if (isNaN(time))
return "";
var integerTime: int = Math.round(time);
var seconds: int = integerTime % 60;
integerTime = integerTime / 60;
var minutes: int = integerTime % 60;
var hours: int = integerTime / 60;
return printf("%02d:%02d:%02d", hours, minutes, seconds);
}
internal function formatTimeAsFractions(time: Number): String {
if (isNaN(time))
return "";
var hours: Number = time / 3600.0;
return new String(Math.round(hours * 100) / 100);
}
... и объект timeFormat представляет собой поле со списком, элементы которого имеют атрибуты labelFunction formatTimeAsFractions
и formatTimeAsInterval
.
Столбцы, имеющие форматы времени, имеют значение formatColumnTime
в качестве значения labelFunction
, поскольку выделение секунд в этой функции и ее передача в средства форматирования сделаны для более тестируемого приложения (IMHO).
Итак, когда значение timeFormat.selectedItem
изменяется, я хочу заставить свою сетку пересчитать метки этих столбцов. Какой метод я должен вызвать на это? invalidateProperties()
не сработало, так что нет.