我的目标是创建一个通用函数,根据值选择组合框中的值。 (我的comoBox将arrayCollection保存为dataProvider。)
难以在运行时模式下获取属性名称
public function selectComboByLabel(combo:ComboBox , propetryName:String, value:String):void {
var dp:ArrayCollection = combo.dataProvider as ArrayCollection;
for (var i:int=0;i<dp.length;i++) {
if (dp.getItemAt(i).propertyName==value) {
combo.selectedIndex = i;
return;
}
}
}
行if(dp.getItemAt(i).propertyName == value) 当然是不正确的。 它应该是这样的:dp.getItemAt(i).getPropertyByName(propertyName)
关于如何做到的任何线索?
答案 0 :(得分:2)
不要使用Object Property表示法。这样做:
dp.getItemAt(i)[propertyName]
答案 1 :(得分:2)
除了Flextras所说的内容之外,您还可以重做for
循环以便于阅读:
for each(var item:Object in dp) {
if(item[propertyName] == value) {
combo.selectedItem = item;
return;
}
}