В документации Adobe Flex говорят:
Элемент визуализации связан с колонной управления DataGrid. Затем рендерер элемента управляет внешним видом каждой ячейки в столбце. Тем не менее, каждый элемент рендеринга элемента имеет доступ к элементу данных для всей строки элемента управления DataGrid. Используйте свойство data средства визуализации элементов для доступа к элементу данных.
Попробуйте выполнить это с помощью ItemRenderer для всех столбцов, которые вы можете сделать это в MXML способом или путем смешивания MXL с кодом сценария действий, как применение стиля для известной колонки:
<mx:DataGrid x="29" y="303" width="694" height="190" dataProvider="{testData.book}" variableRowHeight="true">
<mx:columns>
<mx:DataGridColumn headerText="Title" dataField="title">
<mx:itemRenderer>
<mx:Component>
<mx:HBox paddingLeft="2">
<mx:Script>
<![CDATA[
override public function set data(value:Object) : void {
super.data = value;
var today:Number = (new Date()).time;
var pubDate:Number = Date.parse(data.date);
if(pubDate > today) setStyle("backgroundColor",0xff99ff);
else setStyle("backgroundColor",0xffffff);
}
]]>
</mx:Script>
<mx:Image source="{data.image}" width="50" height="50" scaleContent="true" />
<mx:Text width="100%" text="{data.title}" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
или в отдельном классе сценариев действий, исключая содержимое тега сценария, упомянутого в классе сценария действия, расширяющего тип столбца и переопределяющий набор данных, например:
public class CheckBoxHeaderRenderer extends CheckBox
{
override public function set data(value:Object):void
{
_data = value as CheckBoxHeaderColumn;
selected = _data.selected;
//type your condition here using the property of your dataField
if(data.property=="value"){
this.styleName="yourClassCSSName"
}
}
и ваш класс CSS будет как:
.yourClassCSSName{
contentBackgroundColor: #FF0000;
}
больше: Understanding Flex itemRenderers
Creating item renderers and item editors for the Spark DataGrid control
ли MX или Спарк DataGrid? Вы пытались GridItemRenderer вместо ItemRenderer? – Nemi