ParsleyとFlex 4の他の要素をオーバーライトせずに、射出されたアレイに要素を追加する方法

StackOverflow https://stackoverflow.com//questions/22047901

質問

私はオブジェクトのコレクションを保存するために使用している配列を持っています。私のアプリケーションを使用すると、ユーザーは新しいオブジェクトを配列に追加し、オブジェクトの内容を編集できます。配列内のすべてのオブジェクトは同じタイプであり、私が持っている問題は新しいオブジェクトを追加するか既存のオブジェクトを編集すると、配列に含まれているすべてのオブジェクトは新しく追加されたオブジェクトの正確なコピーになります。 これを停止する方法はありますか?

私のアプリケーションでは、ArrayCollectionを格納するオブジェクトがあります。

public class MyArray
{
    public var array:ArrayCollection = new ArrayCollection;
}
.

この配列にインスタンスを保存したいオブジェクトを持っています:

public class MyObject
{
    public var things:String;
}
.

マイメインMXMLファイルは、ActionScriptファイルで保持されているDataGrid内のmyArray内のすべての項目を表示します。

<App xmlns:par="http://spicefactory.org/parsley">
    <fx:Declarations>
        <par:ContextBuilder config="MainContext"/>
        <par:Configure/>
        <par:FastInject property="mainpm" type="{MainPM}"/>
    </fx:Declarations>
    <fx:Script>
         [Inject][Bindable]
         public var mainpm:MainPM;
    <fx:Script>
.

以降のActionScriptファイル:

public class MainPM
{
    [inject][Bindable]
    public var thearray:MyArray;

    public function addNew(thingtoadd:MyObject):void
    {
        thearray.addItem(thingtoadd);
    }
}
. アプリケーションが非常に大きいため、関連するコードを含めようとしましたが、より多くの情報が必要な場合はそれを提供できます。

役に立ちましたか?

解決

OK SO SOLEこれには、MyObjectの新しいインスタンスを作成し、代わりにMyArrayに追加することでした。

public function addNew(thingtoadd:MyObject):void
{
    var addobj:MyObject = new MyObject;
    addobj.things = thingtoadd.tings;
    thearray.addItem(addobj);
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top