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 的构造函数的写法有关。
本文介绍了一种自定义多选组合框的方法,通过继承MultiSelectComboBox类并设置itemRenderer来实现多选功能。文中详细展示了如何使用ClassFactory创建自定义渲染器,并探讨了不同基类对最终行为的影响。

被折叠的 条评论
为什么被折叠?



