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

IfsomeComponentVariable是封闭类的公共属性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 是动态变化的,它们不会永远绑定数据,当您滚动时,项目会滚动而不是渲染器,它们保持在相同的位置或者它们可能会改变,但是当您滚动时,相应的项目渲染器的数据总是会发生变化. 他们不共享一对一的关系。

唯一的解决办法就是以某种父子关系的形式传递item中的数据。

于 2009-09-21T10:58:58.713 回答