I am now manually telling the iconItemrenderers to select/deselect, but that doesn't work for a various reasons:

1) I have the DataGroup's layout set its useVirtualLayout property to true. So the IconItemRenderers are reused when I scroll to an unseen page of renderers. If I select an item and then scroll to a new down to view more renderers then one of the new renderers appears to be selected. When I scroll back to the original renderer, that renderer may or may not be selected. So I need a way to select a renderer while still being able to use useVirtualLayout.

2) Sometimes I need to programatically select the next or previous item renderer. The problem with doing it programatically is that because I am using useVirtualLayout, the renderer that I want selected may not have been rendered yet.

Keep a selected property in your datamodel. Update selected in there. Inside your renderer update the selected state based on that data. Whenever you scroll the data setter in the renderer gets executed, you have your selected property inside the data Object. Bind or update the renderer based on that...

Your thing is that you one one item selected. And when you select one others should be deselected.

SO when you click or touch the item to be selected yo catch the event and handle it. Moreover you need to update the whole collection with the change. It is up to you how you do it. You can bubble the event to the datagroup for instance.

Anyway the idea is to iterate through your items collection and update them accordingly.

I was hoping that I could just set the renderer's data "bSelected" property to false and that thru data binding, the "selected" property of the renderer would be set.

To mimic data binding thru ActionScript, I have extended the data object with the EventDispatcher class. So now when a property of the data object changes, it dispatches an Event.CHANGE event. I have the renderer listening for the this event. When the event happens, then I have the renderer setting its "selected" property.

This works, but I wish I could utilize the ChangeWatcher which seems like a better practice to bind your data using ActionScript.

Maybe I'll look into this issue further, but for now it works and I thank you for the assistance!