How do I force all Tree itemrenderers to refresh?
        Posted  
        
            by Richard Haven
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Richard Haven
        
        
        
        Published on 2010-04-06T18:18:26Z
        Indexed on 
            2010/04/06
            18:23 UTC
        
        
        Read the original article
        Hit count: 247
        
I have item renderers in an mx.controls.Tree that I need to refresh on demand.
I have code in the updateDisplayList that fires for only some of the visible nodes no matter what I do. I've tried triggering a change that they should all be listening for; I have tried clearing and resetting the dataProvider and the itemRenderer properties.
        private function forceCategoryTreeRefresh(event : Event = null) : void
        {
            trace("forceCategoryTreeRefresh");
            var prevDataProvider : Object = CategoryTree.dataProvider;
            CategoryTree.dataProvider = null;
            CategoryTree.validateNow();
            CategoryTree.dataProvider = prevDataProvider;
            var prevItemRenderer : IFactory = CategoryTree.itemRenderer;
            CategoryTree.itemRenderer = null;
            CategoryTree.itemRenderer = prevItemRenderer as IFactory;
            _categoriesChangeDispatcher.dispatchEvent(new Event(Event.CHANGE));
        }
The nodes refresh properly when I scroll them into view (e.g. the .data gets set), but I cannot force the ones that already exist to refresh or reset themselves.
Any ideas?
© Stack Overflow or respective owner