访问DataGrid中的ItemRenderer

mma*_*tax 4 apache-flex actionscript flex3 actionscript-3

我有一个数据网格,在cloumn中有一个复选框项目渲染器,允许行选择:

主要应用:


<mx:DataGrid id="dg">
    <mx:columns>
        <mx:DataGridColumn id="ir" itemRenderer="renderers.RowCheckbox" /> 
        <mx:DataGridColumn dataField="Name" headerText="Name" /> 
    </mx:columns>
</mx:DataGrid>

项目渲染器:


<-- RowCheckbox -->
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center"> 
    <mx:CheckBox id="chk"/>
</mx:HBox>

如何获取项呈示器/复选框的句柄,以便我可以确定检查哪些行?

Chr*_*man 9

只是一个建议:我们在应用程序中遇到了类似的问题,我们通过向datagrid的dataprovider中的实体添加"selected"属性来解决它.然后,checkBox的selected属性绑定到我们实体的selected属性.要知道选择了哪些,我们只是循环数据提供者中的实体而不是项目渲染器.经过许多不同的方法,这确实是最好的选择.

如果我没记错的话,问题是itemrenderers没有正确记住所选状态,并且当你上下滚动时数据网格完全搞砸了.滚动后选择了错误的行.

另一个选择是在项呈示器中调度一个事件,该事件一直冒泡到托管数据网格的控件.然后,您可以侦听这些事件并更新模型以反映更改.