希望用作嵌入式项呈示器或嵌入式项目编辑器的组件必须实现 IDropInListItemRenderer 接口。许多 Flex 组件可实现此接口,因此可在任一列或列表中将其用作嵌入式项呈示器和嵌入式项目编辑器。
嵌入式项呈示器或嵌入式项目编辑器也必须实现 IDataRenderer 接口以定义
使用组件作为嵌入式项呈示器或嵌入式项目编辑器时,Flex 将使用 list 控件中的相应数据初始化该组件的
下例显示了 setter 方法,该方法适用于 NumericStepper 控件(可根据
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 的
若要实现 IDropInListItemRenderer 接口,需定义 setter 和 getter 方法来实现
请注意,
如果
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; }
用作嵌入式项呈示器或嵌入式项目编辑器时,Flex 会将
尽管此类的属性是可写的,但应将其视为只读。这些属性由 List 类进行初始化,并由项呈示器或项目编辑器读取。更改这些值可能导致意外结果。
这些属性被标记为可绑定,但是这些属性不会实际执行任何 change 检测或发送 change 事件。通过为
这组接口中包含:IDataRenderer、IFlexDisplayObject、ILayoutManagerClient、ISimpleStyleClient 和 IUIComponent。UIComponent 类可实现除 IDataRenderer 接口之外的上述所有接口。因此,如果要创建自定义项呈示器或项目编辑器作为 UIComponent 类的子类,只需实现 IDataRenderer 接口,然后将其添加到其类实现 IDataRenderer 和 IListItemRenderer 的类定义中。
通常,IListItemRenderers 专门用于显示数据提供程序项目中的特定字段,无法在其它 DataGrid 列或其它列表中重新用于其它字段。如果希望创建可以重用的呈示器,也可以实现 IDropInListItemRenderer,该列表会向此呈示器传递更多数据,从而允许其重新用于其它数据字段。
项呈示器和项目编辑器均使用 IDataRenderer 接口从列表类的数据提供程序中传递数据。实现 IDropInListItemRenderer 接口的呈示器和编辑器从列表类中获取其它信息。项呈示器或项目编辑器使用一条或两条信息来显示数据。
呈示器和编辑器经常循环使用。创建之后,只需对其赋予新数据和选择