Here is some code: override public function set dataProvider(value:Object):void { if (value) { visible = false; super.dataProvider = value; if (!(dataProvider is HierarchicalData) ) { dataProvider.addEventListener('collectionChange', positionToPrevSelection); } visible = true; } else { super.dataProvider = null; validateNow(); } } private function positionToPrevSelection(event:CollectionEvent=null):void { for (var i:int=0;i<dataProvider.length;i++) { if (dataProvider[i].name == 'ROOT') { dataProvider.removeEventListener('collectionChange', positionToPrevSelection); dataProvider.filterFunction = filterOutRoot; dataProvider.refresh(); break; } } } private function filterOutRoot(item:Object):Boolean { if (item.name == 'ROOT') { return false; } return true; }; I see that the line item.name == 'ROOT' is true for one item. But the grid still shows ROOT.
Any idea how to fix it? Thanks