Los datos de un datagrid provienen de un arrayCollection, asi que sustraer la fila que quieres [del ArrayCollection] y agregarsela al otro ArrayCollection del otro datagrid, seria suficiente para realizar lo que quieres.
Código :
<mx:DataGrid x="24" y="35" dataProvider="{ grid1 }" id="mygrid1">
<mx:columns>
<mx:DataGridColumn headerText="Column 1" dataField="nombre" />
<mx:DataGridColumn headerText="Column 2" dataField="edad" />
</mx:columns>
</mx:DataGrid>
<mx:DataGrid x="320" y="35" dataProvider="{ grid2 }" id="mygrid2">
<mx:columns>
<mx:DataGridColumn headerText="Column 1" dataField="nombre"/>
<mx:DataGridColumn headerText="Column 2" dataField="edad"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="234" y="58" label="--]" height="38" click="{ pasarDerecha() }"/>
<mx:Button x="234" y="115" label="[--" height="39" click="{ pasarIzquierda() }"/>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
[Bindable] public var grid1:ArrayCollection = new ArrayCollection();
[Bindable] public var grid2:ArrayCollection = new ArrayCollection();
function init()
{
var miO:Object;
for(var i:int=0;i<4;i++)
{
miO = new Object();
miO.nombre = "Estudiante_"+i.toString();
miO.edad = i;
grid1.addItem(miO);
grid2.addItem(miO);
}
}
function pasarDerecha()
{
if(mygrid1.selectedItem)
{
var temp:Object = mygrid1.selectedItem;
grid2.addItem(temp);
grid1.removeItemAt( mygrid1.selectedIndex );
grid1.refresh();
grid2.refresh();
}
}
function pasarIzquierda()
{
if(mygrid2.selectedItem)
{
var temp:Object = mygrid2.selectedItem;
grid1.addItem(temp);
grid2.removeItemAt( mygrid2.selectedIndex );
grid2.refresh();
grid1.refresh();
}
}
]]>
</mx:Script>Espero te sirva..
salu2