2011-04-26 6 views
2

Flex Array Collection의 요소로 바꾸는 가장 좋은 방법은 무엇입니까?Flex : Array Collection의 두 요소 교환하기

ArrayCollection을 데이터 콤보 상자로 바인딩하여 콤보 상자에 바인딩합니다. 행을 선택하고 콤보 상자 목록의 맨 위로 개체를 이동하고 맨 위 개체를 선택한 개체의 위치로 이동해야합니다.

답변

1

이것은 효과가 있습니다.

 var temp:Object = myDataProvider.getItemAt(0); 
     var pos:int = myDataProvider.getItemIndex(selected); 

     myDataProvider.setItemAt(selected,0); 
     myDataProvider.setItemAt(temp,pos); 
     myDataProvider.refresh(); 
+0

하지만 항목 자체가 변경됩니다. 따라서이 작업 후에이 배열 컬렉션의 일부 항목에서 참조하면 해당 속성이 변경됩니다. 이것은 목록에서 항목을 바꿀 수있는 올바른 방법이 아니지만 2 가지 항목 속성을 바꿔 쓰는 방법입니다. – radistao

7

내가 대신 이런 짓을 했을까 :

dataProvider.addItemAt(dataProvider.removeItemAt(selectedIndex), 0); 

유일한 문제는이 콤보 상자는 두 번 다시 바인딩 할 것이지만, 단순 위해이 문제가되지 않을해야한다는 것입니다.

관련 문제