public class ChkRenderComboBox extends MultiSelectComboBox
{
[Bindable]
public var rendererInMultiSelectComBox:ClassFactory = new ClassFactory(CheckBox);
[Bindable]
private var factory:ClassFactory;
/**
* Constructor.
*/
public function ChkRenderComboBox()
{
// var factory:ClassFactory = new ClassFactory(List);
// factory.properties = {allowMultipleSelection:true,itemRenderer:rendererInMultiSelectComBox};
// factory.properties.allowMultipleSelection = true;
// factory.properties.itemRenderer = rendererInMultiSelectComBox;
this.addEventListener(FlexEvent.CREATION_COMPLETE,creationCompleteHandler);
// super.dropdownFactory = factory;
BindingUtils.bindSetter(updateSelectedValue, this, "selectedItem");
}
public function creationCompleteHandler(event:FlexEvent):void
{
trace("lllllllllllkkkkkkkkkkkkffffdgghdfjhjjjjjjhhhhhhhhhh");
factory = new ClassFactory(List);
factory.properties = {allowMultipleSelection:true,itemRenderer:rendererInMultiSelectComBox};
dropdownFactory = factory;
trace("asddddddadasdasdadadsadad"+ObjectUtil.toString(dropdownFactory));
}
结果:
lllllllllllkkkkkkkkkkkkffffdgghdfjhjjjjjjhhhhhhhhhh
asddddddadasdasdadadsadad(mx.core::ClassFactory)#0
generator = (flex3Lib.controls::MultiSelectList )
properties = (null)
但如果extends ComboBox 的话,结果为:
lllllllllllkkkkkkkkkkkkffffdgghdfjhjjjjjjhhhhhhhhhh
asddddddadasdasdadadsadad(mx.core::ClassFactory)#0
generator = (mx.controls::List )
properties = (Object)#1
allowMultipleSelection = true
itemRenderer = (mx.core::ClassFactory)#2
generator = (mx.controls::CheckBox)
properties = (null)
这可能与MultiSelectComboBox 的构造函数的写法有关。