ich eine einfachere Möglichkeit der Änderung der Renderer für das ausgewählte Element gefunden. Dies funktioniert nur, wenn Ihr Element von der Klasse TextInput
in Flex 4.0 oder höher erbt.
In Flex v4.5, in ComboBase.createChildren
in Zeile 1177, werden Sie feststellen, dass die Klasse definierbar für die textInput
kann Schlüssel mit dem Stil textInputClass
übergeben werden: ändern
// Mechanism to use MXFTETextInput.
var textInputClass:Class = getStyle("textInputClass");
if (!textInputClass || FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
{
textInput = new TextInput();
}
else
{
textInput = new textInputClass();
}
einfach den Wert dieses in Schlüssel der Konstruktor Ihrer Combo und jetzt haben Sie Ihren eigenen Renderer für die selectedItem
.
public function ComboAvailableProfessor()
{
super();
itemRenderer = new ClassFactory(ProfessorAvailableListItemRenderer);
setStyle('textInputClass', ProfessorAvailableSelectedListItemRenderer);
}
Schließlich müssen Sie die data
Eigenschaft auf die selectedItem
Eigenschaft in Ihrer Combo um binden zu erhalten angezeigten Daten.
override protected function createChildren():void
{
super.createChildren();
BindingUtils.bindProperty(textInput, 'data', this, 'selectedItem', true);
}
können Sie mir helfen: // entfernen Sie die Standardtextinput \t \t \t \t \t removeChild (textinput); Implizite Koerzition eines Werts vom Typ mx.core: ITextInput auf einen nicht verwandten Typ flash.display: DisplayObject. –