Pensa assim... é estranho pra caramba, mas até que não é confuso.

1) Você tem um ItemRenderer que é uma HBox com um checkBox dentro...
simples assim.
2) Você vai lá e clica no check em tempo de execução.
3) Faz rolagem.
4) O Flex por causa do dataChange dispara um invalidate no renderer.
5) O Flex perde referencia do que tinha pois o renderer foi
"resetado".

A solução... não sei... sinceramente sempre setamos as coisas
diretamente no ValueObject que serve como data. Por exemplo neste
caso, o ValueObject teria uma variável [Transient] chamada
isSelected : Boolean, e o checkBox.selected teria um binding direto
pra essa variável.

Triste, mas nunca achei outro jeito de solucionar isso hehehehe... e
sobre cortar o dataChange do componente, não sei... sempre parto do
pre-suposto que se ele dispara é porque serve pra alguma coisa
hehehehehe...




On 15 abr, 13:39, Squik <[email protected]> wrote:
> Nossa Cara,
>
> Isto é hilário e ao mesmo tempo confuso...
> Mesmo que aconteça um dataChange a propriedade DATA  não deveria
> carregar ou pegar valores aleatórios para tratar meu componentes
> renderizados se o dataGrid renderiza linha a linha.. ele deveria
> manter a posição (codigo) de value (ex) e trazer o componente baseado
> na operação lógica que foi criado no componente...
>
> Eu compreendi a idéia que tu me passou, porem (não querendo fugir do
> trabalho duro he He he) mais deva existir alguma propriedade do
> dataGrid que trava este dataChange por rolagem ou algo do tipo... o
> que acha?
> Se for o caso extender o componente a ponto de arrancar isto dele.
> Estou dizendo isto sem pensar em conseqüências, teria algo a observar
> amigão?
>
> Caso ainda acredite que guardar as configurações dos componentes no
> DATA ainda seja a saída mais fácil, fazer me dê uma prévia de como eu
> poderia fazer isto.
>
> Te agradeço amigo!
>
> On 15 abr, 11:47, Leonardo Casali <[email protected]> wrote:
>
> > É... é exatamente isso...
> > É uma das coisas mais pentelhas de fazer isso no Flex. Isso acontece
> > pq o Flex dispara um DataChange na rolagem hehehe aí perde a
> > configuração.
>
> > Moral da história?
>
> > Você vai ter que guardar absolutamente TODA a configuração do renderer
> > no data... O componente não vai manter estado sozinho... chato pra
> > caramba, mas é o único jeito...
>
> > On 15 abr, 11:40, Squik <[email protected]> wrote:
>
> > > Bom dia amigos,
> > >         Estou um problema que infelizmente não sei por onde começar a
> > > resolver.
> > > Eu tenho um ArrayCollection que alimenta o meu DataGrid
> > > ( dadosMétricas ), este dataGrid tem suas colunas e uma e todas elas
> > > renderizam componentes TextInputs, para que o usuário possa inserir
> > > dados.
> > > No Entanto dependendo da linha eu faço uma comparação... ex:
> > > Se DATA.indice== 1 carrega o Input normal
> > > Se DATA.indice== 4 carrega um Input com outras funcionalidade... e
> > > assim por diante
> > > Em fim..
> > > Eu tenho um IF observando a variável publica DATA.indice para definir
> > > qual é o componente a ser renderizado.
> > > No entendo estou tendo um problema, quando os componentes são
> > > renderizados em modo fullscreen(tela cheia) os componentes são
> > > renderizados normalmente, porem meu datagrid esta dentro de um canvas
> > > de uma componente Arccordion, e quando o mesmo tem o outro canvas
> > > selecionado pelo usuário , ao retornar ao canvas anterior os
> > > componentes que foram renderizados anteriormente ficam todos em
> > > baralhados, perder a ordem em que foram renderizados da primeira vez,
> > > ao até mesmo se não for exibido em modo tela cheia as linhas do
> > > dataGrid que não aparece devido ao tamanho da tela (cria barra de
> > > rolagem), também não aparecem com deveriam, é como se o valor do
> > > DATA.indice se perdece.
> > > Agradeço se alguém puder contribuir com uma idéia.

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