проблема в использовании выпадающего списка flex с itemrenderer - PullRequest
0 голосов
/ 06 октября 2011

Я пытаюсь создать выпадающий список с несколькими выборками, расширяя выпадающий список

private var COLOR_ARRAY:Array= 
        [{label:"Red", data:"#FF0000"},
        {label:"Green", data:"#00FF00"},
        {label:"Blue", data:"#0000FF"}];
[Bindable]
public var colorAC:ArrayCollection;
private function initData():void {
            colorAC=new ArrayCollection(COLOR_ARRAY);
         }
    ]]>
</fx:Script>

<local:MultiSelectionDropDown
    width="300"
    requireSelection="false"
    itemRenderer="MultiSelectItemRenderer"
    skinClass="MultiSelectionDropDownListSkin"
    dataProvider="{colorAC}"
    labelField="label"
/>

И вот мой код рендерера

<s:HGroup width="100%" verticalAlign="middle">
    <s:RichText id="labelDisplay"
                text="{data}"
                textAlign="left"
                styleName="listItem"
                verticalAlign="middle"
                lineBreak="toFit"
                paddingTop="10"
                paddingBottom="10"
                color.hovered ="0xffffff"
                color.selected="0xffffff"
                paddingLeft="10"
                paddingRight="10"
                horizontalCenter="0" verticalCenter="1">
    </s:RichText>

    <mx:Spacer width="100%" />
    <s:CheckBox id="checkbox" />
</s:HGroup>

Я не могу отобразить метку намой выпадающий список .. что я получаю здесь: [объект] ... не могу понять, что я делаю неправильно

1 Ответ

2 голосов
/ 06 октября 2011

Это потому, что вы устанавливаете текст для объекта данных.

text="{data}"

Что RichText делает, это вызывает метод toString () для этого объекта, следовательно, resultnig в "object Object". Вам необходимо указать свойство данных, которые должны использоваться для отображения метки, например:

text="{data.title}"

Вы также можете переопределить метод toString () внутри вашего объекта-значения и вернуть любую строку, которую вам нужно показать.

override public toString():String
{
    return "foobar";
}
...