访问手动输入字符串组合框中的当前所选项

时间:2011-11-14 00:40:16

标签: flex

我只想从ComboBox中当前选定的项目中获取现有标签。我使用带有字符串列表的DataProvider填充它,它不允许我获取当前选择的标签,特别是如果我输入一个新的,不包括在DataProvider中。我在俯瞰什么?

1 个答案:

答案 0 :(得分:0)

如果在项目的ActionScript中指定了DataProvider(在<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返回Objects,而.toString()方法返回“[Object]”。
  2. 为什么.text没有某种myComboBox属性?
    • 某人输入的文字仅用于搜索,不能是值。
      • 组合框不是为此而设计的。
    • 在值存在的DataProvider中返回索引更有效。