O '<mx:Binding' funcionou perfeitamente.
Não lembrava da existência dessa tag. Muito útil para mim.

Já agora .. tem outra situação que eu achava que fosse mais simples, mas que
não está funcionando como eu esperava :

Para cada textInput tenho um label. Para que esse label seja ou não visível
dependendo da visibilidade do textInput correspondente, fiz o seguinte :

labelNome.visible = {txtNome.visible}

mas acontece que, na inicialização do form, o txtNome já fica invisível, já
que a variável que controla a sua visibilidade está false.

mas o label continua visível.

quando mando o txtNome ficar visível e depois invisível de novo, aí sim, o
labelNome já acompanha a visibilidade do txtNome.

Ou seja, no instante inicial em que o txtNome é setado como visible=false, o
labelNome não ' vê ' essa mudança.

Pensei na possibilidade do labelNome não estar criado ainda, na hora em que
o txtNome.visible passa para false. Será que isso pode acontecer ? Eu
controlo essa visibilidade toda no MXML, não no script.



[]s Pedro Oliveira


2009/9/9 Mário Júnior <juninho...@gmail.com>

> Fala Pedrão... blz? (estás em cgr??)
>
> Bom... o erro nao é por causa do Bindable, nem por causa direta do datagrid
> mas é por causa do selectedItem.
> Acontece que vc está vinculando assim:
>
> [Bindable] var minha_var:Number = Grid_clientes.selectedItem.codigo
>
> Só que ao iniciar um datagrid, (mesmo com dados preenchidos) o *selectedItem
> *é nulo, pelo simples fato de que nenhum item ainda foi selecionado no
> grid!!! =D
>
> Em tempo de execução (runtime) o player vai "interpretar" da seguinte
> forma:
>
> [Bindable] var minha_var:Number = Grid_clientes.*null*.*codigo*
> Oooppss!!! Nao pode acessar o atributo "codigo" de um objeto null, por isso
> o player lança o erro! =P
>
>
> Entao.. solução tem várias, desde um simples ternário, passando por
> <mx:Binding> (como a proposta do Kraus), ou até mesmo usar ChangeWatcher....
> enfim... tenta com um ternario, acho q já o suficiente para seu caso:
>
> [Bindable]
> var minha_var:Number = ((Grid_clientes.selectedItem != null) ?
> Grid_clientes.selectedItem.codigo : 0);
>
>
> Abraços.
>
>
>
>
>
>
>
>
> 2009/9/9 Eduardo Kraus <eduardokr...@gmail.com>
>
>>
>>
>>  Você esta no caminho certo, mais falta pouco.
>>
>> A sua variavel que sempre tem que estar atualizada
>> [Bindable]
>> var minha_var:Number
>>
>> no MXML
>> <mx:Binding source="{Grid_clientes.selectedItem.codigo}"
>> destination="minha_var"/>
>>
>> Agora tem que funcionar.
>>
>>   *Eduardo Kraus*
>> Desenvolvedor
>>  eduardokr...@gmail.com
>> http://blog.mxml.com.br
>>
>>
>> 2009/9/9 Pedro Oliveira <pedro...@gmail.com>
>>
>>> Olá pessoal !
>>>
>>>
>>> To tentando vincular o valor de uma variável a um valor do dataprovider
>>> do DataGrid, mais ou menos assim :
>>>
>>> [Bindable]
>>> var minha_var:Number = Grid_clientes.selectedItem.codigo
>>>
>>> só que eu faço a declaração dessa variável na inicialização da
>>> application, antes do datagrid ser preenchido e evidentemente, dá erro;
>>>
>>> existe alguma maneira de declarar essa variável [Bindable] com datagrid,
>>> que n seja só após o preenchimento do datagrid ?
>>>
>>> Por exemplo, se eu vincular o item do datagrid a um controle "Label" ou
>>> "TextInput", funciona sem problemas ...
>>>
>>> ---> LabelCodigo.text = Grid_clientes.selectedItem.codigo   --- funciona
>>>
>>>
>>> []s Pedro Oliveira
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> --
> Mario Junior
> Enterprise Java / Flex Architectures
> Adobe Certified Expert Flex 3 with AIR
>
> Sofshore Informática
> http://www.sofshore.com.br
> +55 (48) 3337 2003
> Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
> Florianopolis SC Brasil
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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