Я бы использовал привязку данных и позволил бы Flex сделать всю работу за вас.
Имейте объект myObject со связываемым свойством myList: IList. Привязать дисплей к этому объекту.
Когда вы начнете редактировать, скопируйте этот список.
On MouseEvent.CLICK:
var ed:Editor // Your list editing object.
var edProvider:IList = ed.dataProvider;
var targList:IList = myObject.myList;
var bool:Boolean = ( myObject.myList.length > edProvider.length );
var len:int = ( bool )? targList.length: edProvider.length;
var item:* = null;
for( var i:int = 0; i < len; i++ )
{
try // a "just in case". You probably will never have a problem.
{
item = edProvider.getItemAt( i );
targList.setItemAt( item, i );
}
catch( error:Error )
{
continue;
}
}