Estou tentando criar um um componente Dropdownlist que funcione two-way databind, fiz o componente, mas esta instavel tem hora q ele funciona e tem hora q não abaixo segue a ideia de uso e o componente.
Estou enviando para lista pq nao consegui achar nada na net... esta dificil.. rsrsrsrsrs Class User_DTO: var id:int; var nome:String; var status:int; // ex: minha array ficaria private var status:ArrayCollection = new ArrayCollection([{id:"1", descricao: "aberto"}, {id: "2", descricao: "fechado"}]); <components:SDropDownList x=width="260" id="dd_status" dataProvider="{status}" keyField="id" selectedValue="@{user.status}" labelField="descricao"/> O Componente.... package components { import flash.events.Event; import mx.collections.IList; import mx.utils.ObjectUtil; import spark.components.DropDownList; public class SDropDownList extends DropDownList { public function SDropDownList() { super(); } //Campo que será utilizado na pesquisa dentro do this.dataProvider private var _keyField:String; [Bindable] public function get keyField():String { return _keyField; } public function set keyField(value:String):void { _keyField = value; } //Campo usado para realizar o bind com o DTO. private var _selectedValue:*; [Bindable] // [Bindable("atualiza")] public function get selectedValue():* { return _selectedValue; } public function set selectedValue(value:*):void { _selectedValue = getValues(value); } private function getValues(value:*):* { if (value == null) { selectedIndex = -1; return; } for each (var obj:Object in dataProvider) { if (ObjectUtil.compare(obj[keyField], value) == 0) { //selectedItem = obj; selectedIndex = dataProvider.getItemIndex(obj); return obj[keyField]; } } } override public function set dataProvider(value:IList):void { super.dataProvider = value; if (selectedValue != null) selectedValue = getValues(selectedItem[keyField]); } } } -- -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev --- Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos Grupos do Google. Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para flexdev+unsubscr...@googlegroups.com. Para obter mais opções, acesse https://groups.google.com/groups/opt_out.