Доступ к текущему выбранному элементу в выпадающем списке введенной вручную строки

#apache-flex

#apache-flex

Вопрос:

Я просто хочу получить существующую метку из текущего выбранного элемента в выпадающем списке. Я заполнил его с помощью dataProvider списком строк, и это не позволит мне получить текущую выбранную метку, особенно если я введу новую, не включенную в dataProvider. Что я упускаю из виду?

Ответ №1:

Если dataProvider был указан в ActionScript вашего проекта (внутри <fx:Script> встроенного тега или внутри оптимизированного файла .as), то вы можете легко получить доступ к выбранной метке с помощью следующего примера:

 var selected:String = (String) data.getItemAt(myComboBox.selectedIndex);
  

Если ваш dataProvider был указан в MXML или каким-либо другим непеременным способом, вы можете сделать это:

 var items:ArrayCollection = (ArrayCollection) myComboBox.dataProvider;
var selected:String = (String) items.getItemAt(myComboBox.selectedIndex);
  

Возможно, вы задаете следующие вопросы, на которые я сейчас отвечу:

  1. Почему мне нужно преобразовать результат в строку?
    • Поскольку DataProviders возвращают объекты, и .Метод toString() возвращает «[Объект]».
  2. Почему нет какого-то .text свойства myComboBox ?
    • Вводимый кем-либо текст используется только для поиска и не может быть значением.
      • Поле со списком не было предназначено для этого.
    • Более эффективно возвращать индекс внутри dataProvider, в котором существует значение.