#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);
Возможно, вы задаете следующие вопросы, на которые я сейчас отвечу:
- Почему мне нужно преобразовать результат в строку?
- Поскольку DataProviders возвращают объекты, и .Метод toString() возвращает «[Объект]».
- Почему нет какого-то
.text
свойстваmyComboBox
?- Вводимый кем-либо текст используется только для поиска и не может быть значением.
- Поле со списком не было предназначено для этого.
- Более эффективно возвращать индекс внутри dataProvider, в котором существует значение.
- Вводимый кем-либо текст используется только для поиска и не может быть значением.