mx.controls.listClasses
接口public interface IDropInListItemRenderer
实现器 AdvancedDataGridGroupItemRenderer, AdvancedDataGridHeaderRenderer, AdvancedDataGridItemRenderer, AdvancedListBase, Button, ComboBox, DataGridItemRenderer, DateField, HTML, Image, Label, ListBase, ListItemRenderer, MenuItemRenderer, NumericStepper, OLAPDataGridGroupRenderer, TextArea, TextInput, TileListItemRenderer, TreeItemRenderer

“嵌入式”项目渲染器的接口。多数 IListItemRenderers 都不是“嵌入式”项目渲染器。它们将使用数据提供程序项目的特定字段。例如,它们可能会将项目的“lastName”属性分配给标签的 text 属性。使用数据绑定,可以很容易地进行写入操作,但是这会产生负面效果,即无法再在 DataGrid 的另一列或带有不同字段的另一个 List 中使用该渲染器。IDropInListItemRenderer 允许重复使用渲染器。列表类将向渲染器传递更多的信息,以便它能够确定在运行时使用哪一字段。

希望用作嵌入式项目渲染器或嵌入式项目编辑器的组件必须实现 IDropInListItemRenderer 接口。许多 Flex 组件可实现此接口,因此可在任一列或列表中将其用作嵌入式项目渲染器和嵌入式项目编辑器。

嵌入式项目渲染器或嵌入式项目编辑器也必须实现 IDataRenderer 接口以定义 data 属性。

使用组件作为嵌入式项目渲染器或嵌入式项目编辑器时,Flex 将使用 list 控件中的相应数据初始化该组件的 listData 属性。然后,组件可使用 listData 属性初始化嵌入式项目渲染器或嵌入式项目编辑器的 data 属性。

listData 属性的类型为 BaseListData,其中 BaseListData 类包含四个子类:DataGridListData、ListData、TreeListData 和 MenuListData。listData 属性值的实际数据类型取决于使用嵌入式项目渲染器或嵌入式项目编辑器的控件。对于 DataGrid 控件,值的类型为 DataGridListData;对于 List 控件,值的类型为 ListData;对于 Tree 控件,值的类型为 TreeListData;对于 Menu 控件,值的类型为 MenuListData。

下例显示了 setter 方法,该方法适用于 NumericStepper 控件(可根据 listData 属性的值初始化 NumericStepper 的 value 属性)的 data 属性:

public function set data(value:Object):void
    {
      _data = value;
    
      this.value = _listData ? parseFloat(_listData.label) : Number(_data);
    
      dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
    }

在上例中,NumericStepper 控件在设置 NumericStepper 的 value 属性时将忽略 data 属性,并改为使用 listData 属性。

若要实现 IDropInListItemRenderer 接口,需定义 setter 和 getter 方法来实现 listData 属性。通常,setter 方法为内部变量写入 listData 属性的值。列表类始终分配此属性,然后设置 data 属性中的数据提供程序项目。

请注意,listData 属性的 setter 方法不会调度事件。这是因为列表类始终先设置 listData,然后设置 data 属性。设置 data 属性也会调度 dataChange 事件。您从不需要对 listData 进行单独设置,因此它不需要调度自己的事件。

如果 data setter 方法执行了一些需要控件进行自行更新的操作,则它可能会调用 invalidateProperties() 方法。然后,组件开发人员应写入 commitProperties() 方法以确定 listData 已修改并采取相应措施。

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;
    }

另请参见

mx.controls.listClasses.BaseListData
mx.core.IDataRenderer


公共属性
 属性定义方
  listData : BaseListData
使用 setter 和 getter 方法实现 listData 属性。
IDropInListItemRenderer
属性详细信息
listData属性
listData:BaseListData  [读写]

使用 setter 和 getter 方法实现 listData 属性。



实现
    public function get listData():BaseListData
    public function set listData(value:BaseListData):void