He encontrado una manera más fácil de cambiar el procesador para el elemento seleccionado. Este solo funciona si su elemento hereda de la clase TextInput
, en Flex 4.0 o superior.
En Flex v4.5, en ComboBase.createChildren
en la línea 1177, se encuentra que la clase definible para la textInput
puede transmitirse utilizando el estilo clave textInputClass
:
// Mechanism to use MXFTETextInput.
var textInputClass:Class = getStyle("textInputClass");
if (!textInputClass || FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
{
textInput = new TextInput();
}
else
{
textInput = new textInputClass();
}
Sólo cambia el valor de esta clave en el constructor de tu combo y ahora tienes tu propio procesador para el selectedItem
.
public function ComboAvailableProfessor()
{
super();
itemRenderer = new ClassFactory(ProfessorAvailableListItemRenderer);
setStyle('textInputClass', ProfessorAvailableSelectedListItemRenderer);
}
Por último se debe enlazar la propiedad data
a la propiedad selectedItem
en su combo con el fin de obtener datos que se muestran.
override protected function createChildren():void
{
super.createChildren();
BindingUtils.bindProperty(textInput, 'data', this, 'selectedItem', true);
}
¿me pueden ayudar: // eliminar el defecto textInput \t \t \t \t \t removeChild (textInput); Coerción implícita de un valor de tipo mx.core: ITextInput en un tipo no relacionado flash.display: DisplayObject. –