Apache flex Flex ArrayCollection-访问对象方法/属性?

Apache flex Flex ArrayCollection-访问对象方法/属性?,apache-flex,adobe,arraycollection,Apache Flex,Adobe,Arraycollection,也许我没有理解ArrayCollection的真正含义,但首先是一些代码 public var test1:AkwRep=new-AkwRep(1200200,2,862010201234342,“类型”、“标准”、“测试名称”、“url”、“所有者”,真); //ein数组中的对象 public-var-akwArray:Array=新数组(15); 公共函数addAkw():void{ akwArray[0]=test1; } 公共变量akwList:ArrayCollection=新的Ar

也许我没有理解ArrayCollection的真正含义,但首先是一些代码

public var test1:AkwRep=new-AkwRep(1200200,2,862010201234342,“类型”、“标准”、“测试名称”、“url”、“所有者”,真);
//ein数组中的对象
public-var-akwArray:Array=新数组(15);
公共函数addAkw():void{
akwArray[0]=test1;
}
公共变量akwList:ArrayCollection=新的ArrayCollection(akwArray);
(akw指Atomkraftwerk->核电厂;)

我有一个包含akwRep对象的数组。对于数据绑定,我将其放入ArrayCollection。 到目前为止没有问题。但是现在我想做一些像


而getAkwName是AkwRep.as中返回字符串的方法。但这不起作用-我无法通过ArrayCollection访问任何方法或属性

有解决办法吗?如果我尝试使用数组,flexbuilder说他无法使用akwArray[0]进行数据绑定

编辑:一些新代码

这在我的主应用程序的
标签中

[Bindable]
//AKW Objekte erstellen
公共变量test1:AkwRep=新的AkwRep(1200200,2,862010201234342,“类型”、“标准”、“测试名称”、“url”、“所有者”,真);
[可装订]
//ein数组中的对象
public-var-akwArray:Array=新数组(15);
公共函数addAkw():void{
akwArray[0]=test1;
}
[可装订]
公共变量akwList:ArrayCollection=新的ArrayCollection(akwArray);
公共函数init():void{
跟踪(akwList.getItemAt(0));
}
这是我的AkwRep

公共类AkwRep
{
//属性
//这里有更多的属性
公共变量类型:字符串;
公共变量标准:字符串;
私有变量akwName:String;
[可装订]
公共函数get AkwName():字符串{
返回此.akwName;
}
//康斯特鲁克托伦
公共函数AkwRep(id:Number,x:Number,y:Number,alter:Number,amNetz:Number,offOhneVerl:Number,offMitVerl:Number,leistung:Number,typ:String,standort:String,akwName:String,wikiurl:String,owner:String,暂停:Boolean)[……]

在AkwRep.as

中,首先我想告诉你:)我的整个AkwRep.as都是可绑定的。有没有理由使用“u”?“u”通常用于使用get/set函数的变量。这只是一个标准的“u”。如果你看看adobe发出的flex sdk库,你会在几乎每个类中看到它的出现;)你有[bindable]标记在您的akwList声明上方?跳过数组!;)只需使用ArrayCollection,它应该可以工作。我在回答的末尾添加了代码,以说明我的意思。基本上,您添加到数组中,但该数组没有绑定到任何内容。创建ArrayCollection时,它会复制值,而不会复制数组。因此,添加到数组中的任何新值都不会创建ArrayCollection后的数组将不会添加到集合中;)
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark"
               creationComplete="init()" xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;

            [Bindable]
            public var akwList:ArrayCollection = new ArrayCollection();
            public var test1:AkwRep = new AkwRep(1,"Testname");

            public function addAkw():void {
                akwList.addItem(test1);
            }

        ]]>
    </fx:Script>

    <mx:VBox>
        <s:Label text="{AkwRep(akwList.getItemAt(0)).akwName}" />
        <s:Button click="addAkw();" label="Add" />
    </mx:VBox>
</s:Application>
package {

    [Bindable]
    public class AkwRep {

        private var _akwName:String;

        public function get akwName():String {
            return "Name: " + _akwName;
        }

        public function AkwRep(id:Number, akwName:String) {
            _akwName = akwName;
        }
    }
}