Acho que é por aí. Talvez você precise depois de algo chamado
outterdocument para acessar componentes na classe principal.

On 23 out, 10:37, Bruno Carneiro <[email protected]> wrote:
> 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 
> editorhttp://livedocs.adobe.com/flex/3/html/help.html?content=cellrenderer_...
>
> <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
-~----------~----~----~----~------~----~------~--~---

Responder a