如何动态更改datagrid行的背景颜色?

时间:2010-03-07 10:25:29

标签: flex datagrid colors row

似乎有各种各样的黑客来改变数据网格行的背景颜色,但所有这些都似乎发生在渲染时。

请参阅:Setting background color for datagrid row in Adobe Flex

我有一个数据网格,我需要根据对绑定的ArrayCollection的更改,将行颜色更改为红色然后经常恢复正常。所以我正在寻找一种动态改变行颜色的方法。

有人可以帮忙吗?显然,由于这些变化经常发生,如果改变行的背景颜色并不是一个昂贵的过程会很好,但是乞丐不能选择。

1 个答案:

答案 0 :(得分:3)

您必须编写自定义组件,我将从项目中包含已清理的代码。在ActionScript的某个地方,您需要为每个列编写此内容:

column.itemRenderer = new ClassFactory(CellRenderer);

这是自定义类:

public class CellRenderer extends Label {
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { 
        super.updateDisplayList(unscaledWidth, unscaledHeight); 
        var g:Graphics = graphics;
        g.clear();
        for each(var object:Object in arrayCollection) {
            if (object.rowIndex == 0) { //or whatever your conditions are
                g.beginFill(0xFFFFC0); 
                g.drawRect(0, 0, unscaledWidth, unscaledHeight);
                g.endFill(); 
            }
        } 
    } 
}