Dando continuidade ao post Inserindo ícones em uma DataGrid com itemRenderer, mostro como utilizar o itemRenderer de outra forma, no flex existem muitas possibilidades de se chegar a um objetivo, pra descobrir a melhor forma de empregar cada solução, vai ter que programar muito.
Em meio as minhas pesquisas descobri essa forma de itemRender inline, ou seja, inserido na própria DataGridColumn, sem a necessidade de criação de outro arquivo.
No outro post, eu usei como itemRenderer um componente externo, dataGridIcons.mxml, referenciado na propriedade itemRenderer, para exibir uma imagem associada a propriedade libertadores.
<mx:DataGridColumn headerText="Libertadores" itemRenderer="dataGridIcons"/>
Na coluna clube podemos associar uma imagem ao nome do time utilizando o itemRender inline como abaixo:
<!-- Abaixo a estrutura básica da DataGridColumn com itemRenderer, os elementos dentro da tag mx:Component tem o mesmo comportamento de um arquivo externo, onde podemos acessar os dados da DataGrid através do objeto data. --> <mx:DataGridColumn headerText="Clube" dataField="nome"> <mx:itemRenderer> <mx:Component> <mx:VBox horizontalAlign="center"> <mx:Image id="imgIcon" toolTip="{data.nome}" source="icons/{data.nome}.png" width="32" height="32" scaleContent="true" maintainAspectRatio="false"/> </mx:VBox> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn>
Resultado:
Créditos pelo ícones: VeryIcon