要在渲染器中獲得其父對象,通過實現IDropInListItemRenderer實現(以DataGrid為例)
1、在渲染器中實現IDropInListItemRenderer接口
<?xml version="1.0" encoding="utf-8"?>
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
focusEnabled="true"
implements="mx.controls.listClasses.IDropInListItemRenderer">
</s:MXDataGridItemRenderer>
2、實現接口的方法,通過此獲得父對象
private var _listData:BaseListData;
private var _owner:DataGrid = null; //父對象
[Bindable("dataChange")]
override public function get listData():BaseListData { return _listData; }
override public function set listData(value:BaseListData):void {
_listData = value;
_owner = value.owner as DataGrid;
}
3、在此基礎上可以取得最頂層文檔對象(文檔對象是位于 Flex 應用程序、MXML 組件或 AS 組件層次結構頂層的 UIComponent)
1、在渲染器中實現IDropInListItemRenderer接口
<?xml version="1.0" encoding="utf-8"?>
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
focusEnabled="true"
implements="mx.controls.listClasses.IDropInListItemRenderer">
</s:MXDataGridItemRenderer>
2、實現接口的方法,通過此獲得父對象
private var _listData:BaseListData;
private var _owner:DataGrid = null; //父對象
[Bindable("dataChange")]
override public function get listData():BaseListData { return _listData; }
override public function set listData(value:BaseListData):void {
_listData = value;
_owner = value.owner as DataGrid;
}
3、在此基礎上可以取得最頂層文檔對象(文檔對象是位于 Flex 應用程序、MXML 組件或 AS 組件層次結構頂層的 UIComponent)
(_owner as DataGrid).parentDocument //通過轉型得到想要的對象