Não uses o binding no source do image. No setter faz a atribuição directamente:

 override public function set data( value:Object ) : void
 {
        super.data = value;
        image.source = ....
 }




On 12-04-2010 15:18, Rui wrote:
Boa tarde!

Estou aqui com uma situação no refresh de uma datagrid em que, em duas
das colunas, estou a renderizar imagens para cada uma das rows. Porém,
quando faço o scroll nas linhas da datagrid, aparecem-me rows com
imagens que não deveriam la estar. Estive a investigar e, pelo que
percebi, o problema deriva do recycling do item Renderer. Tentei fazer
override do nmétodo set data daquela coluna mas o problema persiste. O
meu código está assim:

<mx:DataGridColumn headerText="Icon" textAlign="center" width="100">
                                <mx:itemRenderer>
                                        <mx:Component>

                                                <mx:HBox 
horizontalAlign="center">
                                                        <mx:Script>
                <![CDATA[
                                            override public function set
data( value:Object ) : void {
                                                super.data = value;
                                            }
                                        ]]>
        </mx:Script>
                                                        <mx:Image
source="{outerDocument.defineAlertserviceIconSD(data)}"
                                                                width="50"
                                                                height="50"
                                                                />
                                                </mx:HBox>
                                        </mx:Component>
                                </mx:itemRenderer>
                        </mx:DataGridColumn>
                        <mx:DataGridColumn headerText="Image" textAlign="center"
width="100">
                                <mx:itemRenderer>
                                        <mx:Component>
                                                <mx:HBox 
horizontalAlign="center">
                                                        <mx:Script>
                <![CDATA[
                                            override public function set
data( value:Object ) : void {
                                                super.data = value;
                                            }
                                        ]]>
                                </mx:Script>
                                                        <mx:Image
source="{outerDocument.defineAlertServiceImage(data)}"
                                                                width="50"
                                                                height="50"
                                                                />
                                                </mx:HBox>
                                        </mx:Component>
                                </mx:itemRenderer>
                        </mx:DataGridColumn>

os métodos outerDocument.defineAlertServiceImage(data) e
defineAlertServiceIcon(data) apenas pegam na imagem em Base64 e fazem
o decode, devolvendo o bytearray pra sourfce da imagem do itemRenderer

alguma ideia de como por a datagrid a fazer o refresh devidamente?

Obrigado


--
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.

Para publicar uma mensagem neste grupo, envie um e-mail para 
[email protected].
Para anular a inscrição neste grupo, envie um e-mail para 
[email protected].
Para ver mais opções, visite este grupo em 
http://groups.google.com/group/riapt?hl=pt-PT.

Responder a