I've been looking at this for hours. Does anyone know why I am seeing this behavior? Or at least tell me how I can debug to provide more information.
--- In [email protected], "steve horvath" <flexcod...@...> wrote: > > > I have a TileList: > > <mx:Label id="label1" text="{albumsThumbnailList.selectedIndex}" /> > <mx:Label id="label2" > text="{presentations.currentPresentation.presentedAlbumIndex}" /> > <mx:TileList id="albumsThumbnailList" backgroundAlpha="0" > useRollOver="false" initialize="mySizeBinding(event);" > dataProvider="{presentations.currentPresentation.presentedAlbums}" > itemRenderer="PresentationAlbumRenderer" > > selectedIndex="{presentations.currentPresentation.presentedAlbumIndex}" > change="albumChangeHandler()" /> > > public function test():void { > _includedAlbums.removeItemAt(1); > dispatchEvent(new Event("albumToggledEvent")); > presentedAlbumIndex--; > } > > BEFORE test(): > label1 == 5 > label2 == 5 > > AFTER test(): > label1 == 5 > label2 == 4 > > Problem is, when the 5th index is currently selected and I delete an > item earlier in the list (like index 2), the data provider updates the > list. But the selectedIndex doesn't get updated. (See test() > function.) I noticed when I comment out the removeItemAt line, the > index gets updated just fine. > > How do I update the data provider and index in the same operation and > get the TileList to bind correctly? Can I perhaps subclass TileList and > override a function? Some other way? > > I tried looking into the internals of ListBase, inspecting > selectedIndex, and generally browsing around at runtime. I noticed that > selectedIndex does get set to 4 momentarily. Then it gets set right > back to 5 again. I'm guessing it may have to do with the > updateDisplayList or something like that. >

