【发布时间】:2012-07-16 14:48:51
【问题描述】:
我在 Flex 中为 DataGrid 制作了一个自定义 ItemRenderer。我的问题是,我需要能够使用 listData,这样我才能弄清楚 ItemRenderer 所在的当前行。但我似乎无法正确实现 IDropInListItemRenderer,因为无论什么 listData 对我来说始终为空。
这是我在顶部的代码:
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" autoDrawBackground="false" styleName="gRenderer" dataChange="setStates()" implements=" mx.controls.listClasses.IDropInListItemRenderer">
然后我有:
private var _listData:BaseListData;
然后我有:
public function get listData():BaseListData {
return this._listData;
}
public function set listData( value:BaseListData ):void {
this._listData = value;
}
但是在我的设置数据方法中,我尝试这样做:
override public function set data( value:Object ):void {
super.data = value;
var row : int = listData.rowIndex;
}
但在运行时它会抛出一个错误,说明它正在尝试访问空对象的属性。在我的调试器中,我可以看到 listData 为空。我不知道为什么。从我在网上到处阅读的内容来看,我似乎正在做所有需要的事情。我错过了什么?
谢谢!
【问题讨论】:
-
您处理的是 Spark DataGrid 还是 MXDataGrid?在 MXDataGrid 中使用 Spark ItemRenderer 应该使用 DataGridListData help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/… 而不是 listData。