Я использую AdvancedDataGrid для отображения иерархических данных.DataProvider - это объект, а дочернее поле - ArrayCollection объектов.Когда я обновляю один из объектов в ArrayCollection, я бы хотел, чтобы сетка обновилась.
После исследования я понимаю, что это не произойдет автоматически.Даже если я использую itemUpdated () и затем обновляю AC.Даже если я вызываю executeBindings (рекурсивно).
Я знаю, что для того, чтобы быть умным, я должен был использовать ObjectProxy все время, так как это решило бы все мои проблемы.Моя проблема сейчас заключается в том, как мне исправить это без полной переделки моих объектов иерархических данных?
Я пытался, чтобы мои объекты-значения расширяли ObjectProxy, но это не помогло.Есть ли элегантное решение?Могут ли типизированные объекты даже использовать класс ObjectProxy?
Спасибо за любые полезные советы.
Вот код HierarchicalData:
<mx:HierarchicalData
source="{model.myObject}"
childrenField="trades"/>
Вот класс 'myObject':
[Bindable]
public class MyObject implements ValueObject
{
public var qty:Number;
public var status:String;
public var comments:String;
public var modified_by:String;
public var modified_date:Date;
public var trades:ArrayCollection = new ArrayCollection();
}
ArrayCollection 'trades' содержит набор определенных здесь торговых объектов:
[Bindable]
public class Trade implements ValueObject
{
public var selected:Boolean = false;
public var quantity:Number;
public var modified_by:String;
public var modified_date:Date;
}
А вот как я заполняю коллекцию после того, как сервер возвращает данные:
for ( var i:int=0;i<result.length;i++ ){
var item:Object = result[i];
var recall:MyObject = new MyObject();
recall.comments = item.comments;
recall.qty = item.qty;
recall.status = item.status;
recall.modified_by = item.modified_by;
recall.modified_date = item.modified_date;
recall.trades.addItem( item.trades );
model.recalls.addItem( recall );
}