Могу ли я использовать привязываемую строку для приглашения ComboBox?

Ниже отображается ComboBox с текстом «Выберите один»:

**Это псевдокод*

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:ComboBox prompt="Select One">
        <mx:dataProvider>
            <mx:Array>
                <mx:Object label="Obj 1" />
                <mx:Object label="Obj 2" />
                <mx:Object label="Obj 3" />
            </mx:Array>
        </mx:dataProvider>
    </mx:ComboBox>
</mx:Application>

Однако следующее отображает поле со списком с текстом «Объект 1» (метка первого элемента):

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
        <![CDATA[
            [Bindable]
            private var promptText:String = "Select One";
        ]]>
    </mx:Script>

    <mx:ComboBox prompt="{promptText}">
        <mx:dataProvider>
            <mx:Array>
                <mx:Object label="Obj 1" />
                <mx:Object label="Obj 2" />
                <mx:Object label="Obj 3" />
            </mx:Array>
        </mx:dataProvider>
    </mx:ComboBox>
</mx:Application>

Почему я не могу использовать Bindable String для подсказки???


person Eric Belair    schedule 03.03.2009    source источник


Ответы (1)


Это сработало:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
        <![CDATA[
            [Bindable]
            private var promptText:String = "Select One";
        ]]>
    </mx:Script>

    <mx:ComboBox selectedIndex="-1" prompt="{promptText}">
        <mx:dataProvider>
            <mx:Array>
                <mx:Object label="Obj 1" />
                <mx:Object label="Obj 2" />
                <mx:Object label="Obj 3" />
            </mx:Array>
        </mx:dataProvider>
    </mx:ComboBox>
</mx:Application>

Я не могу понять, почему я должен явно установить для selectedIndex значение -1, но это работает!

person Eric Belair    schedule 03.03.2009
comment
Связывание происходит немного позже, чем создание компонента. Я предполагаю, что ComboBox по умолчанию выбирает первый элемент, если вы не укажете подсказку. Итак, ComboBox создается, проверяет и выбирает первый элемент, а затем срабатывает привязка. - person Josh Tynjala; 05.03.2009