我在Flex中爲DataGrid製作自定義ItemRenderer。我的問題是,我需要能夠使用listData,所以我可以找出ItemRenderer所在的當前行。我似乎無法正確實現IDropInListItemRenderer,因爲無論對於我而言,哪個listData都是空的。Flex使用ItemRenderer在自定義項目渲染器中實現IDropInListItemRenderer類
這是我在上面的代碼:
<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使用星火的ItemRenderer應該使用DataGridListData http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/mx/controls/dataGridClasses/MXDataGridItemRenderer.html#dataGridListData沒有的ListData。 – JeffryHouser 2012-07-16 15:24:15