2014-02-26 11 views
0

개체 컬렉션을 저장하기 위해 사용하는 배열이 있습니다. 내 응용 프로그램에서는 사용자가 배열에 새 객체를 추가하고 객체의 내용을 편집 할 수 있습니다. 배열의 모든 객체가 같은 유형이고 문제는 내가 새 객체를 추가하거나 기존 객체를 편집하면 배열에 포함 된 모든 객체가 새로 추가 된 객체의 정확한 사본이됩니다. 이 문제를 막을 수있는 방법이 있습니까? 내 응용 프로그램에서Parsley로 Flex 4의 다른 요소를 덮어 쓰지 않고 삽입 된 배열에 요소를 추가하는 방법

나는 ArrayCollection에 저장하는 객체가 있습니다

public class MyObject 
{ 
    public var things:String; 
} 

내 기본 MXML 파일 표시 :

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

을 나는이 배열의 인스턴스를 저장하고자하는 객체를 가지고 액션 스크립트 파일에 보관되어있는 DataArray의 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> 

다음 액션 스크립트 파일 :

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

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

응용 프로그램이 매우 큰 것처럼 나는 관련 코드를 포함하는 시도했지만 자세한 내용이 필요한 경우 나는 그것을 제공 할 수 있습니다.

답변

0

그래,이 유일한 방법은 MyObject의 새 인스턴스를 만들고 대신 MyArray에 추가하는 것이 었습니다.

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