Agora entendi! Acho importante detalhar meu problema, porque pode ser o mesmo problema de outras pessoas.
A minha dificuldade se dava porque eu tinha UM MODELO MENTAR ERRADO do funcionamento dos itemrenderers O que eu pensava: Os dados, no datagrid, passam por esse fluxo: DataProvider -> DataGridColumn -> ItemRenderer Nesse ponto: DataProvider -> DataGridColumn eu passo os dados através da propriedade dataField do DataGridColumn. E essa propriedade só me permite associar um campo do DataProvider. Para eu passar os campos para o ItemRenderer, eu preciso primeiro, passá-los para o DataGridColumn ( devido a ordem do fluxo ). E para eu passar vários campos para o ItemRenderer, eu teria que passar vários campos para o DataGridColumn... o que eu não tenho a menor idéia de como fazer. MAS ISSO ESTÁ INCOMPLETO! O que eu falei acima é apenas uma forma de trabalhar com item renderers. A outra forma é a seguinte: Quando o List Component usa um item renderer ele preenche uma propriedade do item renderer chamada data. No caso do datagrid essa propriedade recebe O ITEM COMLETO DO DATAPROVIDER. Então, no meu item renderer, através dessa propriedade, eu tenho acesso a qualquer campo do item. Tem um código exatamente sobre isso nessa página Creating a complex inline item renderer or item editor http://livedocs.adobe.com/flex/3/html/help.html?content=cellrenderer_6.html#199436 <mx:DataGridColumn dataField="Album"> <mx:itemRenderer> <mx:Component> <mx:VBox> <mx:Text id="albumName" width="100%" text="{data.Album}"/> <mx:Image id="albumImage" height="45" source="{data.Cover}"/ > </mx:VBox> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> On 22 out, 16:04, thiagoalgo <[email protected]> wrote: > Você precisa criar uma classe que herda de VBox e, talvez, ainda > implementar a interface > mx.controls.listClasses.IDropInListItemRenderer para receber os dados > dentro dessa classe. Dá uma pesquisada aí na internet que você > encontra exemplos. > > On 22 out, 14:12, Bruno Carneiro <[email protected]> wrote: > > > Mas Thiago, como eu associaria 3 campos à mesma coluna? > > > On 22 out, 13:10, thiagoalgo <[email protected]> wrote: > > > > Cara, vendo essa imagem que você mandou, dá para resolver isso de > > > maneira muito simples usando item renderer. Se você extender um VBox > > > para usar como item renderer com certeza já consegue resolver seu > > > problema. > > > > On 22 out, 11:19, Bruno Carneiro <[email protected]> wrote: > > > > > Marcelo, olhei o link realmente interessante. Não é o que eu preciso, > > > > talvez possa ser adaptado. Ainda não sei como faria... > > > > > Vou tentar explicar melhor o que eu quero. > > > > > Eu tenho um datagrid, que me fornece uma lista de objetos do meu > > > > dprovider. > > > > > Cada coluna do meu dgrid está associada a um campo do meu > > > > dataprovider. Isso nós fazemos através da propriedade datafield. > > > > > Agora, imagine que eu quero um datagrid diferente. Quero associar a > > > > uma ÚNICA COLUNA MAIS DE UM CAMPO do meu dataprovider. > > > > > Porque isso? Pq eu quero no mesmo campo, mostrar vários dados dipostos > > > > em linhas. Talvez alguém esteja se perguntando: Porque você não cria > > > > mais colunas e mostra esses dados nas colunas? Porque eu não tenho > > > > espaço na largura, mas na altura tenho espaço sobrando. > > > > > Então, no link que você postou a idéia é usar outro datagrid como > > > > itemrenderer, neste caso não é exatamente o que eu quero pois se eu > > > > colocar ali outro grid cada linha será um item diferente. Eu quero > > > > mostrar dados DO MESMO ITEM. > > > > > Resumindo, de alguma forma eu tenho que bolar uma maneira de na mesma > > > > coluna do datagrid eu mostrar dados de mais de um campo. > > > > > Como eu ainda não comecei a implementar, ainda não tenho muitas > > > > idéias... estou a procura de sugestões. > > > > > Ficou mais claro? > > > > > Eu fiz um print da imagem > > > > >http://yfrog.com/0yexemplogg > > > > > Olha como em uma vizualização a coluna só mostra um campo. > > > > Em outra vizualização ela mostra 3 campos. > > > > > Depois de escrever tudo isso, pensei no seguinte: No meu model > > > > ( ArrayCollection ) eu crio um outro campo "virtual". Esse campo não > > > > pertence a tabela do banco de dados, é um campo que eu vou criar > > > > dentro do Flex após receber os items do banco. Esse novo campo vai ser > > > > a concatenação dos campos que eu quero mostrar. Acho que dá certo. > > > > > Se não tiver alguma forma melhor de fazer, vai ser assim. --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---
