カスタムアイテムレンダラーで値オブジェクトにアクセス/渡すにはどうすればよいですか? アイテム レンダラーはデータグリッド内のフィールドを表し、VO からプロパティにアクセスできるようにしたいと考えています。
ありがとう
カスタムアイテムレンダラーで値オブジェクトにアクセス/渡すにはどうすればよいですか? アイテム レンダラーはデータグリッド内のフィールドを表し、VO からプロパティにアクセスできるようにしたいと考えています。
ありがとう
アイテムレンダラーのsetdataメソッドをオーバーライドする必要があります。
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo">
<fx:Script>
<![CDATA[
//Strongly typed VO for use in binding.
[Bindable]
private var myValueObject:MyValueObject;
override public function set data(value:Object) : void
{
//we don't want to update if the value is the exact same.
if(data === value)
return;
//you could simply access the data property but I think
//it is nicer to have strong typing for code hints
super.data = myValueObject = value;
validateNow();
}
]]>
</fx:Script>
<mx:Label text="{myValueObject.name}"/>
</mx:Canvas>
このアプローチはどうですか?
アイテム レンダラー ItemRendererLink.mxml:
public function goTo():void {
Alert.show(goToScreen + " " + data.item_num);
}
]]>
</mx:Script>
</mx:LinkButton>
親コンポーネント:
<mx:DataGridColumn dataField="item_num"
headerText="Item #">
<mx:itemRenderer>
<mx:Component>
<e:ItemRendererLink goToScreen="item"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>