将Array转换为Arraylist for dataProvider的问题

时间:2011-04-07 03:39:02

标签: flex types arraylist dataprovider

private var MealsListResult:ArrayList = new ArrayList;
protected var _data:resultData = new resultData;

private function resultHandler():void
    {   
    var Meals:Array = _data.Meals;
    MealsListResult = _data.Meals as ArrayList;
    MealDataGrid.dataProvider = Meals;
    MealListView.dataProvider = MealsListResult;
    }

这应该有用吗? MealDataGrid是基于数组填充的,但我正在调试,MealsListResult为null。但_data.Meals不是,如果我错过了一些简单的东西,我不知道。

我可以通过这样做来实现它:var MealsListResult2:ArrayList = new ArrayList(Meals);但我觉得第一种方法应该也能正常工作!

(有mxml列表和数据网格,当然这里没有显示)

1 个答案:

答案 0 :(得分:2)

如果_data.Meals的运行时类型是数组,则_data.Meals as ArrayCollection将失败。但是,new ArrayCollection(_data.Meals as Array)会正常工作。

<强> CMIIW 我想你的问题是你不能将单个对象用作2个或更多不同的ui dataprovider。

尝试使用

MealDataGrid.dataProvider = _data.Meals;
MealListView.dataProvider = ObjectUtils.clone(_data.Meals);

<强>更新

抱歉,我想念了,我虽然是ArrayColletion。但你需要做的就像ArrayCollection一样