0

我对 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是具有 name 属性的 Person 类的 ArrayCollection

listBox是 Fl​​ex 中要显示名称的列表组件的 id

当我尝试运行代码时,列表框确实显示了一些东西。但它没有显示名称,而是始终显示对象 Object 。看来我仍然必须先对event.result做一些事情,这样它才能成为 Person 类的 ArrayCollection。

4

1 回答 1

0

您需要设置 ComboBox 的 labelField,试试这个

假设 Person 有一个可见的 name 属性,

public class Person(){
   public var name:String = "User 1";
}

labelField您可以通过使用该属性告诉您的 ListBox 使用该属性来填充其标签字段

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";
}
于 2012-10-19T02:01:18.343 回答