3

を使用して、アイテムの配列をデータグリッドにバインドしていますItemRenderer。変数を使用してdata、バインド可能なデータを制御します。またsomeComponentVariable、すべての行に挿入する必要がありますが、コンポーネントスコープで宣言されているため、データグリッドはそれを再構成していないようです(コンパイルエラー)。

someComponentVariable?内でこの変数()を使用するにはどうすればよいItemRendererですか?

コード例

<mx:DataGrid id="userBonusesGrid" width="100" height="248" showHeaders="false" wordWrap="true">
    <mx:columns>
        <mx:DataGridColumn headerText="" width="36">
            <mx:itemRenderer>
                <mx:Component>
                    <mx:VBox verticalAlign="middle" horizontalAlign="center">
                        <ns1:SidePanelBonus 
                            bonusName="{data.name}" description="{data.description}" 
                            arrow="{someComponentVariable}">
                        </ns1:SidePanelBonus>   
                    </mx:VBox>
                </mx:Component>
            </mx:itemRenderer>
        </mx:DataGridColumn>
    </mx:columns>
</mx:DataGrid>
4

2 に答える 2

4

someComponentVariableが を囲むクラスのパブリック プロパティである場合DataGrid、 を使用outerDocumentして からアクセスできますcomponent

<ns1:SidePanelBonus bonusName="{data.name}" description="{data.description}" 
    arrow="{outerDocument.someComponentVariable}">
</ns1:SidePanelBonus>   

詳細については、インライン アイテム レンダラーとエディターの作成の「コンポーネント タグの使用」セクションを参照してください。outerDocument

于 2009-09-21T11:50:58.687 に答える
0

いいえ、まったく使用できません。データグリッド内の各itemRendererは、レンダラーが作成されたアイテムにのみアクセスできます。これは意図的に行われます。itemRendrersは動的に変更され、データに永久にバインドされることはありません。スクロールすると、アイテムはレンダラーではなくスクロールされ、同じ位置に留まるか、変更される可能性がありますが、スクロールすると、対応するアイテムレンダラーのデータは常に変更されます。 。彼らは1対1の関係を共有していません。

唯一の解決策は、アイテムのデータを親子関係の形式で渡すことです。

于 2009-09-21T10:58:58.713 に答える