recherche looooong et dur pour cela sans chance:combobox dans DataGrid CellRenderer
je dois mettre un combobox dans une colonne d'un DataGrid. L'utilisateur a juste besoin de sélectionner une valeur parmi les éléments combox existants. Je sais que je dois utiliser un cellrenderer personnalisé. S'il vous plaît voir ma tentative actuelle ci-dessous.
Cette tentative insère avec succès une zone de liste déroulante dans le DataGrid, BUT sans aucune donnée dans la zone de liste déroulante. En fait, lorsque je clique sur la zone de liste déroulante dans la grille de données, elle est identique à une zone de liste déroulante normale sur la scène sans DataProvider. En d'autres termes, il n'ouvre même pas.
Ainsi, j'ai besoin de savoir comment modifier mon cellrenderer pour ajouter correctement les données au combo et accepter les modifications apportées par l'utilisateur lors de la sélection d'une valeur de la liste déroulante.
Toute aide serait grandement appréciée! S'il vous plaît noter que je suis en utilisant AS3 et non pas AS2 et non Flex.
package{
import fl.controls.ComboBox;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
import flash.events.Event;
import fl.data.DataProvider;
public class ComboBoxCell extends ComboBox implements ICellRenderer {
private var _listData:ListData;
private var _data:Object;
private var _selected:Boolean;
private var _mycombo:ComboBox = new ComboBox();
public function ComboBoxCell() {
_mycombo.addItem({ label:"MasterCard", data:0 });
_mycombo.addItem({ label:"Visa", data:1 });
_mycombo.addItem({ label:"American Express", data:2 });
trace("drawn");
}
public function set data(d:Object):void {
_data = d;
}
public function get data():Object {
return _data;
}
public function set listData(ld:ListData):void {
_listData = ld;
}
public function get listData():ListData {
return _listData;
}
public function setMouseState(state:String):void{
}
public function get selected():Boolean{
return _selected;
}
public function set selected(value:Boolean):void{
_selected = value;
}
}
}