Komponenten, die als Renderer oder Editoren verwendet werden sollen, in denen Elemente abgelegt werden können, müssen die IDropInListItemRenderer-Schnittstelle implementieren. Viele Flex-Komponenten implementieren diese Schnittstelle und können daher in einer Spalte oder Liste als Renderer oder Editoren verwendet werden, in denen Elemente abgelegt werden können.
Renderer oder Editoren, in denen Elemente abgelegt werden können, müssen auch die IDataRenderer-Schnittstelle implementieren, um die
Wenn eine Komponente als Renderer oder Editor verwendet wird, in dem Elemente abgelegt werden können, initialisiert Flex die
Die
Das folgende Beispiel zeigt die Set-Methode für die
public function set data(value:Object):void { _data = value; this.value = _listData ? parseFloat(_listData.label) : Number(_data); dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); }
Im obigen Beispiel ignoriert das NumericStepper-Steuerelement die
Um die IDropInListItemRenderer-Schnittstelle zu implementieren, definieren Sie eine Set- und Get-Methode zur Implementierung der
Beachten Sie, dass die Set-Methode für die
Die
Die Get-Methode gibt den aktuellen Wert der internen Variablen zurück, wie dem folgenden Beispiel entnommen werden kann:
// 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; }
Die
Wenn die Klasse als Renderer oder Editor verwendet wird, in dem Elemente abgelegt werden können, legt Flex die
Obwohl die Eigenschaften dieser Klasse änderbar sind, sollten Sie sie unverändert beibehalten. Sie werden durch die List-Klasse initialisiert und von einem Renderer oder Editor für Elemente gelesen. Eine Veränderung dieser Werte kann zu unerwarteten Ergebnissen führen.
Die Eigenschaften sind als bindbar gekennzeichnet, sie führen jedoch keine Change-Erkennung durch und senden auch keine Change-Ereignisse. Die Eigenschaften werden insgesamt geändert, indem ein neuer Wert für die
Die Schnittstellengruppe umfasst: IDataRenderer, IFlexDisplayObject, ILayoutManagerClient, ISimpleStyleClient, IUIComponent. Die UIComponent-Klasse implementiert alle diese Schnittstellen,. mit Ausnahme der IDataRenderer-Schnittstelle. Daher gilt: Wenn Sie einen benutzerdefinierten Elementrenderer oder Elementeditor als Unterklasse derUIComponent-Klasse erstellen, brauchen Sie nur die IDataRenderer-Schnittstelle zu implementieren und können dann der Klassendefinition hinzufügen, dass die Klasse IDataRenderer und IListItemRenderer implementiert.
IListItemRenderer sind im Allgemeinen für die Anzeige eines bestimmten Felds aus dem Datenproviderelement vorgesehen und können nicht in anderen DataGrid-Spalten oder in anderen Listen mit anderen Feldern wiederverwendet werden. Wenn Sie einen Renderer erstellen möchten, der wiederverwendet werden kann, können sie auch IDropInListItemRenderer implementieren. Dann übergibt die Liste mehr Daten an den Renderer, sodass der Renderer mit verschiedenen Datenfeldern wiederverwendet werden kann.
Elementrenderer und Elementeditoren erhalten Daten aus dem Datenprovider einer Listenklasse über die IDataRenderer-Schnittstelle. Renderer und Editoren, die die IDropInListItemRenderer-Schnittstelle implementieren, erhalten andere Iinformationen aus der Listenklasse. Der Elementrenderer oder Elementeditor verwendet eine Information oder beide Informationen, um die Daten anzuzeigen.
Die Renderer und Editoren werden oft wiederverwendet. Nachdem sie erstellt wurden, können sie einfach wiederverwendet werden, indem sie neue Daten und optional eine