包 | 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 |
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; }
另请参见
属性 | 定义方 | ||
---|---|---|---|
listData : BaseListData 使用 setter 和 getter 方法实现 listData 属性。 | IDropInListItemRenderer |
listData | 属性 |
listData:BaseListData
[读写]
使用 setter 和 getter 方法实现 listData
属性。
public function get listData():BaseListData
public function set listData(value:BaseListData):void