Chinaunix首页 | 论坛 | 博客
  • 博客访问: 218569
  • 博文数量: 68
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-19 21:17
文章分类

全部博文(68)

文章存档

2009年(16)

2008年(12)

2007年(27)

2006年(13)

我的朋友

分类: 系统运维

2007-11-19 12:32:57

Adobe Flex 2语言参考:
IDropInListItemRenderer接口
用于“drop-in”item renderers的接口。大多数IListItemRenderers并不是“drop-ins”。而是被期望用作data provider item的详细的字段。例如,分配item的lastName属性给Label的text属性。若使用数据绑定这是容易的,但是有负作用,在另一个DataGrid的列或者带不同字段的另一个List时,这个renderer不能被重用。IDropInListItemRenderer允许一个renderer被重用。这个list类将会传递更多的信息到renderer以至它能在运行时决定使用哪个字段。
你想作为drop-in item renderers 或drop-in item editor使用的组件必须实行IDropinListItemRenderer接口。许多Flex组件实现这个接口,所以可直接用作drop-in renderers 和drop-in item editors在任何列表或类中。
Drop-in item renderers 或drop in item editors也必须实现IDataRenderer接口来定义data属性。
当一个组件被用作drop-in item renderer或drop-in item editor,Flex从list控件来初始化组件的listData属性为适当的数据。组件能用listData属性来初始化drop-in item renderer或drop-in item editor的data属性。
这listData属性为BaseListData类型,BaseListData类有三个子类:DataGridListData,ListData,和TreeListData。而listData属性实际的数据类型依赖于drop-in item renderer或item editor在使用的控件。对一个DataGrid控件,类型的值是DataGridListData类型,对于List控件是ListData类型,对Tree控件是TreeListData类型。
下边的例子展示了setter方法用于NumericStepper控件的data属性,初始化NumbericStepper的value属性基于listData属性的值。
public function set data(value:Object):void
    {
      _data = value;
   
      this.value = _listData ? parseFloat(_listData.label) : Number(_data);
   
      dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
    }
在上面的例子中,NumericStepper控件忽略data属性当设置NumericStepper的value属性,并使用listData属性替代。
为了实现IDropInListItemRenderer接口,你定义一个setter和getter方法来实行listData属性,典型地,setter方法将listData的值写到一个内部变量。这list类总是分配这个属性,然后设置在data属性中设置data provider item。许多实现激活listData 在data的setter中,或在commitPorperties()方法中,因为data的setter方法调用invalidateProperties()方法,或在dataChange事件响应处理时,因为data的setter会分发这个事件。getter方法返回该内部变量当前的值,象下面的例子展示的:
  // Internal variable for the property value.
    private var _listData:BaseListData;
   
    // Make the listData property bindable.
    [Bindable("dataChange")]
   
    // Define the getter method.
    public function get listData():BaseListData
    {
      return _listData;
    }
   
    // Define the setter method,
    public function set listData(value:BaseListData):void
    {
      _listData = value;
    }
阅读(1248) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-15 09:30:49

laji