Comment ajouter des éléments à un tableau injecté sans dépasser les autres éléments de Flex 4 avec le persil

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

Question

J'ai un tableau que j'utilise pour stocker une collection d'objets.Mon application permet à l'utilisateur d'ajouter de nouveaux objets à la matrice et d'éditer le contenu des objets.Tous les objets de la matrice sont du même type et le problème que j'ai d'avoir est que si j'ajoute un nouvel objet ou modifier un objet existant, tous les objets contenus dans la matrice deviennent exactes des copies exactes de l'objet nouvellement ajouté. Y a-t-il un moyen de l'arrêter?

Dans mon application, j'ai un objet qui stocke une arraycollection:

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

J'ai un objet que je souhaite stocker des instances de cette matrice:

public class MyObject
{
    public var things:String;
}

Mon fichier MXML principal Affiche tous les éléments de MyARRAY dans un fichier Datagramrid qui est conservé dans un fichier ActionScript:

<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>

puis le fichier ActionScript:

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

    public function addNew(thingtoadd:MyObject):void
    {
        thearray.addItem(thingtoadd);
    }
}

J'ai essayé d'inclure le code concerné car l'application est assez importante, mais si plus d'informations sont nécessaires, je peux lui fournir.

Était-ce utile?

La solution

OK, donc le moyen de créer une nouvelle instance de MyObject et d'ajouter cela à MyARRAY à la place.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top