Actionscript 3 如何使AdvancedDataGridRenderProvider呈现ArrayCollection?

Actionscript 3 如何使AdvancedDataGridRenderProvider呈现ArrayCollection?,actionscript-3,flex3,Actionscript 3,Flex3,我有一个像这样的对象: [Bindable] public class MyRecord implements ValueObject { public var recall_id:int; public var recall_type:String; public var selected:Boolean = false; public var qty:Number; public var curr_qty:Number; public var

我有一个像这样的对象:

[Bindable]
public class MyRecord implements ValueObject
{

    public var recall_id:int;
    public var recall_type:String;
    public var selected:Boolean = false;
    public var qty:Number;
    public var curr_qty:Number;
    public var due_date:String;
    public var status:String;
    public var comments:String;
    public var groupedTrades:ArrayCollection = new ArrayCollection();
}
我在ArrayCollection中填充了一堆数据,然后将其用作AdvancedDataGrid的数据提供程序:

<mx:dataProvider>       

                                <mx:HierarchicalData 
                                    source="{model.recalls}"
                                    childrenField="groupedTrades"/>      

                            </mx:dataProvider>
问题是,我的renderProvider的方法被调用用于它所属ADG的数据提供程序中的每个记录。这相当于为每个交易分组交易创建一个全新的数据网格

我如何解决这个问题?我很困惑

谢谢你的建议,感恩节快乐

更新:我刚从一个博客中找到一些硬编码的数组,它正在做我想做的事情;作为AdvancedDataGrid的渲染器提供的DataGrid

private var masterData:Array = [
        { OrderId: 10248, CustomerId:"WILMK", EmployeeId:5, OrderDate:"1-Feb-2007", 
        children:[
                [
                    {ProductId:11, ProductName:"Quesbo Cabrales", UnitPrice:14, Quantity:12, Discount:0, Price:168},
                    {ProductId:42, ProductName:"Singaporean Hokkien Fried Mee", UnitPrice:9.8, Quantity:10, Discount:0, Price:98},
                    {ProductId:42, ProductName:"Mozzarella di Giovanni", UnitPrice:34.8, Quantity:5, Discount:0, Price:174}
                ]
                ]}
             ]
         ]}
这是来自这个博客:

当我调试我的集合时,我使用的是arraycollection,因为它是从服务器返回的,我看到如下情况:

[Bindable]
public class MyRecord implements ValueObject
{

    public var recall_id:int;
    public var recall_type:String;
    public var selected:Boolean = false;
    public var qty:Number;
    public var curr_qty:Number;
    public var due_date:String;
    public var status:String;
    public var comments:String;
    public var groupedTrades:ArrayCollection = new ArrayCollection();
}
调用[0]-重新调用记录对象 -支柱 -支柱 -groupedTrades-我要用作renderProvider的DP的ArrayCollection groupedTrades[0]-通用对象 groupedTrades[1]-通用对象

我看不出博客中的硬编码版本与我使用的服务数据之间的区别。我错过了什么

谢谢大家!

已解决:

问题是,当服务器响应时,我是如何将值分配给“groupedTrades”的。我做得完全错误:我做的是直接赋值,而不是将ArrayCollection作为元素添加到“groupedTrades”ArrayCollection

我是这样做的:

for ( var i:int=0;i<result.length;i++ ){
                var item:Object = result[i];

                var recall:RecallRecord       = new RecallRecord();
                recall.counterparty_shortcode = item.counterparty_shortcode;
                recall.comments               = item.comments;
                recall.curr_qty               = item.curr_qty;
                recall.div_percent            = item.div_percent;
                recall.due_date               = df.format( item.due_date );
                recall.qty                    = item.qty;
                recall.rebate_rate            = item.rebate_rate;
                recall.recall_id              = item.recall_id;
                recall.recall_type            = item.recall_type;
                recall.sedol                  = item.sedol;
                recall.status                 = item.status;
                recall.ticker                 = item.ticker;
                recall.groupedTrades          = item.groupedTrades;


                model.recalls.addItem( recall );
            }
与此相反:

for ( var i:int=0;i<result.length;i++ ){
                var item:Object = result[i];

                var recall:RecallRecord       = new RecallRecord();
                recall.counterparty_shortcode = item.counterparty_shortcode;
                recall.comments               = item.comments;
                recall.curr_qty               = item.curr_qty;
                recall.div_percent            = item.div_percent;
                recall.due_date               = df.format( item.due_date );
                recall.qty                    = item.qty;
                recall.rebate_rate            = item.rebate_rate;
                recall.recall_id              = item.recall_id;
                recall.recall_type            = item.recall_type;
                recall.sedol                  = item.sedol;
                recall.status                 = item.status;
                recall.ticker                 = item.ticker;

                recall.groupedTrades.addItem( item.groupedTrades );

                model.recalls.addItem( recall );
            }

这看起来很奇怪,如果我硬编码我的分层数据,一切都很好,但当我切换到使用对象的数组集合时,它根本不起作用。有什么区别?我编写“MyRecord”对象的方式是否没有正确显示分层数据结构?我是否需要创建自定义数据描述符?
for ( var i:int=0;i<result.length;i++ ){
                var item:Object = result[i];

                var recall:RecallRecord       = new RecallRecord();
                recall.counterparty_shortcode = item.counterparty_shortcode;
                recall.comments               = item.comments;
                recall.curr_qty               = item.curr_qty;
                recall.div_percent            = item.div_percent;
                recall.due_date               = df.format( item.due_date );
                recall.qty                    = item.qty;
                recall.rebate_rate            = item.rebate_rate;
                recall.recall_id              = item.recall_id;
                recall.recall_type            = item.recall_type;
                recall.sedol                  = item.sedol;
                recall.status                 = item.status;
                recall.ticker                 = item.ticker;

                recall.groupedTrades.addItem( item.groupedTrades );

                model.recalls.addItem( recall );
            }