Что я пытаюсь сделать, чтобы финансовые данные в моем Flex Datagrid имели цветовую кодировку - зеленый, если он положительный; красный, если он отрицательный. Это было бы довольно просто, если бы столбец, который я хочу раскрасить, был частью dataProvider. Вместо этого я рассчитываю его на основе двух других столбцов, которые являются частью dataProvider. Это было бы все еще довольно просто, потому что я мог бы просто вычислить это снова в ItemRenderer, но другая часть вычисления основана на значении textBox. Итак, я думаю, что мне нужно иметь возможность отправлять значение textBox в пользовательский ItemRenderer, но поскольку это значение хранится в основном приложении MXML, я не знаю, как получить к нему доступ. Отправка его в качестве параметра кажется наилучшим способом, но, возможно, есть и другой.
Вот текущий код моего ItemRenderer:
package {
import mx.controls.Label;
import mx.controls.listClasses.*;
public class PriceLabel extends Label {
private const POSITIVE_COLOR:uint = 0x458B00 // Green
private const NEGATIVE_COLOR:uint = 0xFF0000; // Red
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
/* Set the font color based on the item price. */
setStyle("color", (data.AvailableFunding >= 0) ? NEGATIVE_COLOR : POSITIVE_COLOR);
}
}
(data.AvailableFunding не существует)
Так кто-нибудь знает, как мне поступить?