Как вы устанавливаете данные? Вы меняете DataGrid dataProvider с новой коллекцией объектов? Потому что из описанного вами поведения это может быть так.
Решением было бы вместо этого изменить dataProvider DG. Каждый раз вам просто нужно обновить значения в коллекции, которая назначена в качестве поставщика данных.
Например,
[Bindable]
var myDataCollection:ArrayCollection = new ArrayCollection([0,1,2,3,4]);
// Handle creation complete.
private function onCreationComplete():void
{
initDG();
}
// Init DG data provider just once.
private function initDG(data:ArraCollection):void
{
myDG.dataProvider = data;
}
private function updateDG_Method_1(row:int, value:int):void
{
var data:ArrayCollection = myDG.dataProvider as ArrayCollection;
if(data && data.length > row)
{
data[row] = value;
}
// We can force refresh if not not done automatically.
myDG.invalidateList();
myDG.validateNow();
}
private function updateDG_Method_2(row:int, value:int):void
{
if(myDataCollection && myDataCollection.length > row)
{
myDataCollection[row] = value;
}
// We can force refresh if not not done automatically.
myDG.invalidateList();
myDG.validateNow();
}
Пожалуйста, игнорируйте / исправьте любую опечатку .., так как я не проверял это:))
Удачи!