Obrigado.

Eu achei que arrayCollection era uma coleção de arrays por causa do
nome.


On 14 fev, 11:38, Mário Júnior <juninho...@gmail.com> wrote:
> well... saiba q um "dataprovider contendo objects" é bem parecido com um
> arrayCollection =D
>
> Bem, presumo q vc está iniciando agora e é normal ter algumas dúvidas.
> Dataprovider é um atributo dos componentes list-based (baseados em listas,
> como datagrid, list, tileList, combobox, etc...) Em um dataprovider vc pode
> ligar Arrays e ArrayCollections.
>
> Já esses (array e arrayCollections) são TIPOS de dados, tratam-se de
> estruturas.
> ArrayCollection não é uma coleção de arrays. Poderia ser, mas não
> obrigatoriamente muito menos "semanticamente". ArrayCollection é uma
> estrutura de dados mais elaborada que o Array nativo do AS3.
>
> Além do mais, existe uma questão importante também (e acho q pouca gente
> sabe) é q os componentes do flex possuem uma "Default property" (propriedade
> padrão). Isso significa q se vc não especifiar qual propriedade a ser usada
> no componente, o componente vai atribuir os valores a default property dele,
> e adivinha qual a default property da combo: dataprovider!
> Ou seja, mesmo q vc não especificasse o <mx:dataprovider>, sem vc saber, o
> dataprovider já estava sendo usado. =D
>
> Bem, para não estender muito o assunto recomendo a leitura:
>
> Usando 
> dataproviders:http://www.adobe.com/devnet/flex/quickstart/using_data_providers/
>
> Usando um Array como dataprovider para um 
> Tree:http://blog.flexexamples.com/2007/12/03/using-an-array-as-a-data-prov...
>
> E, pesquise no google por "Flex dataprovider" ... vc vai achar muuuita
> coisa.
>
> Um abraço, bom estudos.
>
> 2009/2/14 Bruno Carneiro <guimaraescarne...@gmail.com>
>
>
>
>
>
> > Mário, obrigado pela sua resposta.
>
> > Neste momento eu resolvi o problema usando um mx:dataProvider contendo
> > objetos, acho que ficou bem melhor do que usando arrayCollection como
> > eu estava fazendo.
>
> > Só comentando, vc sugeriu usar um arrayCollection com objetos. Mesmo
> > que funcione eu acho que não seria legal usar pq arrayCollection como
> > o nome já diz, é uma coleção de arrays, então acho que fica
> > semanticamente estranho eu usar um arrayCollection para agrupar
> > objects. Por isso que eu usei o mx:dataProvider mesmo. Acho que ficou
> > legal.
>
> > Muito obrigado pela ajuda, foi construtiva.
>
> > Portanto, me pareceu que a melhor forma de se implementar um Combo Box
> > com selectedValue é usando um dataprovider contendo objects com um
> > atributo value. Assim podemos pegar o value selecionado fazendo
> > this.seuComboBox.selectedItem.value .
>
> > Se ninguém tiver mais nenhuma observação a acrescentar, acho que o
> > tópico está encerrado.
>
> > On 14 fev, 00:38, Mário Júnior <juninho...@gmail.com> wrote:
> > > acontece q usar arrays dentro de array colection está bem estranho.,...
>
> > > tente fazer assim: (pseudo-código)
>
> > > <combobox id="categoria" labelField="nome">
> > > <arrayCollection>
>
> > > <object nome="Cereais" codigo="1" />
> > > <object nome="Açougue" codigo="2" />
> > > <object nome="Frutas e verduras" codigo="3" />
> > > ... etc....
>
> > > </arrayCollection>
> > > </combobox>
>
> > > A idéia é q vc tenha um arrayCollection de Objetos, e não de arrays. E
> > que
> > > seus objetos contenham atributos q caracterize-os.
>
> > > 2009/2/13 Bruno Carneiro <guimaraescarne...@gmail.com>
>
> > > > No meu caso eu fiz assim:
>
> > > > <mx:ComboBox x="95" y="82" width="125" id="categoria">
> > > >            <mx:ArrayCollection>
> > > >               <mx:Array>
> > > >                        <mx:String>Cereais</mx:String>
> > > >                        <mx:Number>0</mx:Number>
> > > >               </mx:Array>
> > > >               <mx:Array>
> > > >                        <mx:String>Açougue</mx:String>
> > > >                        <mx:Number>1</mx:Number>
> > > >               </mx:Array>
> > > >               <mx:Array>
> > > >                        <mx:String>Frutas e Verduras</mx:String>
> > > >                        <mx:Number>2</mx:Number>
> > > >               </mx:Array>
> > > >            </mx:ArrayCollection>
> > > >        </mx:ComboBox>
>
> > > > O problema é que agora no label do combobox aparece assim "Cereais,0"
> > > > "Açougue,1" etc...
>
> > > > Eu não consigo separar. Eu achei uma propriedade labelField e
> > > > dataField mas não consegui usar com meu array collection, mesmo lendo
> > > > a documentação no site da Adobe.
>
> > > > On 13 fev, 17:39, Bruno Carneiro <guimaraescarne...@gmail.com> wrote:
> > > > > Alberto, muito obrigado.
>
> > > > > Essa sua dica funciona. Mas no meu caso atualmente eu tenho um array
> > > > > collection, e futuramente eu vou ler do banco.
>
> > > > > Então, como no seu caso vc tem uma coleção de objetos, nos objetos vc
> > > > > pode colocar a propriedade que vc quiser. No meu caso eu tenho que
> > ver
> > > > > como fazer.
>
> > > > > De qualquer forma, eu vou precisar lidar com isso quando eu importar
> > > > > os dados do banco... eu ainda não aprendi a fazer isso.
>
> > > > > On 13 fev, 18:09, "Alberto" <alberto.ferre...@tan.com.br> wrote:
>
> > > > > > Tente assim.
>
> > > > > > <mx:ComboBox id="cbCategoria" selectedIndex="1">
> > > > > >  <mx:dataProvider>
> > > > > >       <mx:Object data=""   label="Cahaceiro"/>
> > > > > >       <mx:Object data="-1" label="Cervejeiro"/>
> > > > > >       <mx:Object data="0"  label="Não toma nada"/>
> > > > > >  </mx:dataProvider>
> > > > > > </mx:ComboBox>
>
> > > > > > cbCategoria.selectedItem.data
>
> > > --
> > > Mário Júnior
> > > Programador Java / Adobe Flexhttp://blog.mariojunior.com
>
> --
> Mário Júnior
> Programador Java / Adobe Flexhttp://blog.mariojunior.com
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a