■ - 2010/03/04/Flex4のDataGridでアイテムレンダラー (2010-03-04)
Flex4で遊んでいるのですが、DataGrid のアイテムレンダラーの実装方法がわからなくて、かなり時間を浪費してしまったのでここにメモ。
Flex4で、アイテムレンダラーを宣言する場合、アイテムレンダラーのタグをルートタグとしないといけないのですが、DataGrid で、<s:ItemRenderer>をルートにすると型が違うとエラーになります。そして、<mx:DataGridItemRenderer>というタグがあるので、これをルートにしてもダメです。
なんと、正解は、<s:MXDataGridItemRenderer>です!この変な名前のタグは何?ぜんぜん気付かなかったです。(ここを見て、ようやく謎は解決したんです。
上記のような簡単な DataGrid のアイテムレンダラーの利用例を以下に。
<fx:Declarations>
<!-- データの定義 -->
<s:ArrayCollection id="selectedData">
<fx:Object label="MP3Player TT50" price="4000" />
<fx:Object label="歩数計S3" price="3200" />
<fx:Object label="SDカードSD5G" price="4000" />
<fx:Object label="モバイルカードMC4" price="4000" />
</s:ArrayCollection>
</fx:Declarations>
<mx:DataGrid dataProvider="{selectedData}">
<mx:columns>
<mx:DataGridColumn headerText="商品名" dataField="label" />
<mx:DataGridColumn headerText="値段" dataField="price" width="50" />
<mx:DataGridColumn headerText="削除" width="80">
<mx:itemRenderer>
<fx:Component>
<s:MXDataGridItemRenderer>
<s:Button label="削除"/>
</s:MXDataGridItemRenderer>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
くじらぶろぐD 

