Вроде новичок 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();
}
...
Когда метод reset () вызывается для экземпляра dataSetLoader, DataGrid очищает данные в ячейках, как и ожидалось, но оставляет имена столбцов, хотя reset () вызывает _columnNames.removeAll (). Разве изменения в коллекции не должны вызывать изменения в DataGrid?