Приложение имеет список, itemRenderer внутри себя кнопку, при клике на которую вызывается dispatchEvent
Код самого приложения:

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import events.SomeItemEvent;
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
import mx.utils.ObjectUtil;
[Bindable] private var items:ArrayCollection; // вот тот самый binding
protected function creationCompleteHandler(event:FlexEvent):void
{
items = new ArrayCollection();
items.addItem({ title: "A" });
items.addItem({ title: "B" });
items.addItem({ title: "C" });
// обработчик события высплывающего из itemRenderer'a
addEventListener(PreviewItemEvent.EDIT, function(e:SomeItemEvent):void {
// обновляю значение
e.item.title = Math.random();
// данные обновляются, но внутри itemRenderer'a изменения не подхватываются
trace(ObjectUtil.toString(items));
});
}
]]>
</fx:Script>
<s:List dataProvider="{items}" itemRenderer="TestItemRenderer" width="400" height="300">
<s:layout>
<s:TileLayout horizontalGap="10" verticalGap="10" />
</s:layout>
</s:List>
</s:Application>
ItemRenderer:

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true"
width="100" height="100">
<fx:Script>
<![CDATA[
import events.SomeItemEvent;
protected function update_clickHandler(e:MouseEvent):void
{
// внутрь события передается текущая data
dispatchEvent(new SomeItemEvent(SomeItemEvent.UPDATE, true, false, data));
}
]]>
</fx:Script>
<s:Button id="update" label="{data.title}" click="update_clickHandler(event)" verticalCenter="0" horizontalCenter="0" />
</s:ItemRenderer>
Код SomeItemEvent:

Код AS3:
package events
{
import flash.events.Event;
public class SomeItemEvent extends Event
{
public static const UPDATE:String = "update";
public var item:Object;
public function SomeItemEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, item:Object=null)
{
this.item = item;
super(type, bubbles, cancelable);
}
}
}
Подскажите как заставить itemRenderer подхватывать изменения. Или может это вообще неверный путь я выбрал?
Спасибо.