1

私はフレックスとこのフォーラムの初心者です。itemrenderer の mx:VBox に画像を表示するデータグリッドがあります。ユーザーが VBox を複数選択できるようにする必要があります。しかし、いくつかのアイテムを選択し、VBox の背景色を変更してグリッドをスクロールすると、いくつかの rendom アイテムが自動的に選択され、同じ背景色が設定されます。ここで読んだフレックス再利用アイテムレンダラーを知っています

しかし、どうすれば選択のみのアイテムを防ぐことができますか。以下は私のコードです

<mx:DataGrid  id="dgPhoto" 
                              variableRowHeight="true" 
                              dataProvider="{StyleItemsArray}" 
                              verticalGridLineColor="white" 
                              verticalGridLines="true" 
                              showHeaders="false" 
                              width="100%" 
                              height="100%"
                              allowMultipleSelection="true"
                              >
                    <mx:columns>
                        <mx:DataGridColumn width="250" headerText="Preview" dataField="img">
                            <mx:itemRenderer>
                                <mx:Component>
                                    <mx:VBox height="215" horizontalAlign="center" click="this.setStyle('backgroundColor', 'white')">
                                        <mx:Script>
                                            <![CDATA[


                                            ]]>
                                        </mx:Script>

                                        <mx:HBox horizontalAlign="center" horizontalGap="0">
                                            <mx:Image brokenImageBorderSkin="{null}" brokenImageSkin="@Embed(source='../img/errorIcon231.png')" id="image1" width="180" source="{data.source}" horizontalAlign="right"></mx:Image>
                                            <mx:VBox horizontalAlign="center" verticalGap="2">                                      
                                                <mx:Button click="{btnZoom_clickHandler(event, data.sourceHRES, data.label, data.IDMSFile)}" toolTip="Zoom" id="btnZoom" icon="@Embed(source='../img/zoom.png')" fillColors="#BB3030"/>
                                                <mx:Button click="{btnDownload_clickHandler(event, data.IDMSFile)}" toolTip="Place this style" id="btnDownload" icon="@Embed(source='../img/Download.png')" fillColors="#BB3030"/>

                                            </mx:VBox>
                                        </mx:HBox>
                                    </mx:VBox>
                                </mx:Component>                         
                            </mx:itemRenderer>
                        </mx:DataGridColumn>
                    </mx:columns>
                </mx:DataGrid>
4

1 に答える 1

0

選択/未選択のステータスは、各アイテムレンダラーに渡される「データ」アイテムに保存して処理する必要があります。

または、itemrendererからグリッドを参照して、現在のデータが選択したアイテムに含まれているかどうかを確認できます。

または、アイテムが選択/選択解除されたときに呼び出されるBoxメソッドとオーバーライドメソッドを使用する代わりに、標準のグリッドitemrendererを拡張できます。

しかし、スパークデータの代わりに、その古い、バグのある、リジッドなmxデータグリッドを使用する必要があるのでしょうか。標準の選択色をスタイリングする代わりに、カスタム選択表示が本当に必要ですか?

于 2012-12-20T12:27:10.423 に答える