【发布时间】:2010-03-23 21:45:38
【问题描述】:
这里有点像 Flex 新手,所以请多多包涵。我有一个 DataGrid 定义如下:
<mx:Script>
...
private function getColumns(names:ArrayCollection):Array {
var ret:Array = new Array();
for each (var name:String in names) {
var column:DataGridColumn = new DataGridColumn(name);
ret.push(column);
}
return ret;
}
</mx:Script>
<mx:DataGrid id="grid" width="100%" height="100%" paddingTop="0"
columns="{getColumns(_dataSetLoader.columnNames)}"
horizontalScrollPolicy="auto" labelFunction="labelFunction"
dataProvider="{_dataSetLoader.data}"
/>
...其中 _dataSetLoader 是一个对象的实例,如下所示:
[Bindable]
public class DataSetLoader extends EventDispatcher {
...
private var _data:ArrayCollection = new ArrayCollection();
private var _columnNames:ArrayCollection = new ArrayCollection();
...
public function reset():void {
_status = NOTLOADED;
_data.removeAll();
_columnNames.removeAll();
}
...
当对 dataSetLoader 实例调用 reset() 时,DataGrid 会按预期清空单元格中的数据,但保留列名,即使 reset() 调用 _columnNames.removeAll() 也是如此。集合中的更改不应该触发 DataGrid 中的更改吗?
【问题讨论】:
标签: apache-flex data-binding datagrid