Search code examples
flashapache-flexflex4

How to update a row in a List when data of that row changes?


I have a list of objects that populate a list. The objects contain an icon that are loaded separately on demand.

Since the list is populated before all the icons are loaded I need to update the list row when the icon is ready.

// iirc it was something like this
var itemIndex:int = list.dataProvider.getItemIndex(item);
list.updateRow(itemIndex); // or list.redrawRow()

Solution

  • It looks like I can use the following:

    var itemIndex:int = itemsList.dataProvider.getItemIndex(item);
    
    if (itemIndex!=-1) {
        var renderer:IItemRenderer = itemsList.dataGroup.getElementAt(itemIndex) as IItemRenderer;
    
        if (renderer) {
            itemsList.updateRenderer(renderer, itemIndex, item);
        }
    }