2009-10-15 13 views
1

Я работаю в приложении Air в Flex3, мне нужно знать, как установить свойство «selectedItem», когда у нас есть 2 значения, такие как свойство label и label, для выбора combobox, значение данных для нашего ввода.ComboBox selectedItem in Flex3

Как показано ниже.

В (SelectedItem = "{StyleName}") StyleName будет иметь "значение данных", но мне нужно, чтобы установить, что свойство "Lable" в качестве выбранного значения в ComboBox.

Как если бы «имя» «проверено», то выбранный элемент ComboBox должен быть «проверен».

Как реализовать это в гибком ....

Заранее спасибо

+0

@vineth, я понял вопрос прекрасный - возможно, английский не ваш первый язык - и я надеюсь, что вы найдете мой ответ полезным. –

ответ

2

ComboBox.selectedItem ищет Object. Вы передаете ему литерал String. Где установлено «stylename»? Если это исходит из внешнего источника, вы можете получить элемент, который будет выбран в функции сеттер:

ActionScript 3:

[Bindable] 
public var comboBoxData:ArrayCollection; 

[Bindable] 
private var comboBoxSelectedItem:Object = {}; 

private var _styleName; 

private function get styleName():String 
{ 
    return _styleName; 
} 

private function set styleName(value:String):void 
{ 
    _styleName = value; 

    comboBoxSelectedItem = getItemFromCollection("styleName", value); 
} 

private function getItemFromCollection(property:String, value:String):Object 
{ 
    // Create a copy of the Collection used as the dataProvider for the ComboBox 
    var filteredCollection:ArrayCollection = 
     new ArrayCollection(comboBoxData.toArray()); 

    // Set a filterFunction to filter only those Objects with the specified name/value pair 
    filteredCollection.filterFunction = 
     function(item:Object):Boolean 
     { 
      return item[property] == value; 
     } 

    // Refresh the collection to apply the filterFunction 
    filteredCollection.refresh(); 

    // Return an empty Object if no Object was found with the given name/value pair 
    if (filteredCollection.length == 0) 
     return {}; 

    // Return the first/only Object in the filtered Collection 
    return filteredCollection.getItemAt(0); 
} 

MXML:

<mx:ComboBox dataProvider="{comboBoxData}" selectedItem="{comboBoxSelectedItem}" /> 
+0

Спасибо Mr.Eric, я попробую этот метод Bindable, так как я сделал как метод для selectedItem, чтобы переназначить значение метки, как вы уже указали выше. – vineth

+0

Удивительный, рад помочь! –

Смежные вопросы