You are right, I was so close I jumped to a conclusion. The ComboBox should enable properly without another redraw. I will try to find out why.
The renderer subclasses an extended ComboBox with selectedValue functionality, perhaps that is causing a problem. I'll try this with the stock CBO to narrow the variables. Any other suggestins will be welcome. Tracy ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Alex Harui Sent: Thursday, November 29, 2007 12:43 AM To: [email protected] Subject: RE: [flexcomponents] How to call invalidateList() from within a renderer Usually, you renderers get called from within updateDisplayList and invalidateList does not work from within UDL otherwise it could repeat that cycle forever. There's always callLater, but I'd first wonder why the Combo doesn't enable properly and needs the redraw. ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Tracy Spratt Sent: Wednesday, November 28, 2007 9:21 PM To: [email protected] Subject: [flexcomponents] How to call invalidateList() from within a renderer I want my ComboBox itemRenderer to be disabled based on a "disabledFlag" property in the dataProviderItem. I have a CheckBox renderer in another column that updates that property. The ComboBox renderers display fine on initialize, with the correct rows disabled But when I click the checkbox, even though the code in the CBO renderer's set data() and commitProperties runs correctly and sets the Combobox enabled property correctly, the ComboBox interactivity is not correct until something redraws the list, like scrolling. I can make it work with an external button that calls invalidateList() on the DataGrid, but I want to do that from within the renderer. I have tried: /** called from commitProperties */ private function setEnabled():void { this.enabled = !_oItem.disabledFlag; DataGrid(_dgListData.owner).invalidateList(); }//setEnabled But this does not seem to do anything. Where, when and how should I make the invalidateList call from within my renderer?
