posts - 0, comments - 0, trackbacks - 0, articles - 15
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

flex Renderer中获取父对象

Posted on 2011-08-09 17:41 Cana 阅读(571) 评论(0)  编辑  收藏 所属分类: flex
要在渲染器中获得其父对象,通过实现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)

(_owner as DataGrid).parentDocument    //通过转型得到想要的对象