ropa meaning ltd guadalajara careers cantante flex

meaning - flex ropa



Flex: ¿Hay alguna forma de vincular el elemento seleccionado de ComboBox a una variable? (6)

En la superficie, es tan simple como:

<mx:ComboBox id="myComboBox" dataProvider="{myDataProvider}" selectedItem="{defaultItem}"/>

Cuando establece defaultItem (asegúrese de que sea [Bindable]) a uno de los elementos en el proveedor de datos, actualizará el control.

Pero hay problemas con este enfoque. A menos que currentDefaultItem siempre cambie DESPUÉS de myDataProvider, el enlace a dataProvider puede deshacer la selección, volviendo al valor predeterminado (primer elemento en la lista).

Una forma de evitar esto es forzar a selectedItem a recuperarse después de dataProvider, incluyendo dataProvider en la llamada que proporciona el elemento seleccionado.

<mx:ComboBox id="myComboBox" dataProvider="{myDataProvider}" selectedItem="{getSelectedItem(myComboBox.dataProvider, defaultItem)}"/>

Lo que hace es asegurarse de que selectedItem se recupere cuando cambie currentDefaultItem o después de que el proveedor de datos cambie. Me interesarían otras soluciones yo mismo.

OK, tengo un ComboBox, el dataProvider es una matriz de objetos con propiedades de etiqueta que le dan al ComboBox la lista de opciones.

¿Hay alguna manera de que pueda tener una variable como mySelectedItem y unirle el elemento selected de ComboBox para que, si cambia, el elemento seleccionado de ComboBox cambie a lo que sea?

Espero que esto tenga sentido.

¡Gracias!


Sí, la propiedad del elemento seleccionado de ComboBox es enlazable.

Sería algo como esto:

<mx:ComboBox selectedItem="{mySelectedItem}"> </mx:ComboBox>

En su AS:

[Bindable] var mySelectedItem:Object;

Los cambios en mySelectedItem deberían aparecer en ComboBox. Puede obtener errores si el elemento al que mySelectedItem hace referencia no existe en el proveedor de datos de ComboBox.


Use un detector de eventos para el evento Change y realice su procesamiento allí.

// update a label item''s text with that of the Combobox''s selectedItem private function changeEvt(event:Event):void { label.text =event.currentTarget.selectedItem.label + " " + }



o bien, podrías hacer algo como esto si no te importa extender ComboBox; Esto es un seudocódigo (lo siento, la identificación de las coincidencias depende del tipo de objeto), pero se entiende la idea ...

public class IndexRetainingComboBox extends ComboBox { public function IndexRetainingComboBox() { super(); } override public function set dataProvider(value:Object):void { var originalSelection:Object = this.selectedItem; super.dataProvider = value; var newIdx:uint = [find originalSelection idx in combobox or return 0 ] this.selectedIndex = newIdx; } }


Sé que así es como se describe en la documentación. Como en un cambio en el elemento seleccionado se disparará el oyente de cambio. Sin embargo, para mí, esto no sucede. ¿Alguien más encuentra el mismo comportamiento?