我有点新的flex环境,我想知道如何做这种情况:
我的初始代码如下:
public function displayAllNames(event:ResultEvent):void {
var result:ArrayCollection = new ArrayCollection();
result = event.result as ArrayCollection;
if (result.length != 0){
listBox.dataProvider = result;
}
}
event.result 是具有名称属性
的人类类的数组listbox 是flex中列表组件的ID,其中将显示名称
当我尝试运行代码时,ListBox确实显示了一些内容。但是,它不代替名称,而是全部显示对象。似乎我仍然必须使用 event.result 首先做某事,以便它是人类班级的数组。
您需要设置ComboBox的Labelfield,尝试此
假设人具有可见名称属性,
public class Person(){
public var name:String = "User 1";
}
您可以告诉您的列表框使用该属性通过使用labelField
属性
if (result.length != 0){
listBox.labelField = "name";
listBox.dataProvider = result;
}
默认情况下,我相信将其设置为"label"
,如果找不到该属性,它将使用Object.toString()
,即[Object object]
来自的位置。
因此,也可以覆盖或简单地包括数据提供商类中的toString
方法,而不是更改列表的labelField
overide pubic function toString():String{
return "this will become your label field";
}