2010-10-13 29 views
0

作爲一種替代的數組集合綁定到數據網格的數據提供者,可能我給你的陣列收集的數據提供到數據網格上的創作,每次陣列集合更新執行invalidateProperties(); invalidateList();重新 - 提交數據網格?替代數據綁定

請問我描述的方法是否合理?

+0

@Wade:你可以在你爲什麼要向着「不」倚詳細點嗎?謝謝。 – dank106 2010-10-13 19:10:41

回答

0

請問我描述的方法是否合理?

的排序。如果你有一個使用get/set方法定義的arrayCollection(ac),那麼沒有理由在每次數據更改時都不能在set方法中的DataGrid上設置dataPRovider。

如果你這樣做,那麼你很可能不會有更新DatGrid的屬性或顯示列表,因爲更換的dataProvider這一事實會爲你做它。

事情是這樣的:

private var _ac : ArrayCollection; 
public function get ac():ArrayCollection){ 
return this._ac; 
} 

public function set ac(value:ArrayCollection){ 
this._ac = value; 
this.dataGrid.dataProvider = this.ac; 
} 

賓果,每一個AC值更新時間,所以將數據提供程序上的數據網格。

+0

@Flextras:需要說明的是集被修改項逐項,而不是作爲整體的收集,即'_ac.addItem(OBJ);'理想情況下,我想被添加/移除的所有對象之前收集(重新)分配它作爲數據網格的數據提供者。這可能通過getters/setters方法嗎? – dank106 2010-10-13 19:15:01

+0

@ dank106我想現在明白了。您不會更改dataPRovider引用,而是更改該引用指向的集合。是否正確? DataGrid應該在集合中添加刪除項目時自動更新。這與綁定無關。這是因爲DataGrid實現了一個collectionChange事件處理程序。但是,如果修改集合中對象的屬性,則DataGrid不會更新。爲此你必須在DataGrid上做相關的失效。 – JeffryHouser 2010-10-13 20:10:05

+0

@Flextras:是的,你是對的。我正在尋找更有效的方式來處理對集合的更改;我想在強制網格重新呈現之前等待集合中發生的所有更改。另外,感謝您指出數據網格實現了集合更改處理程序;我的印象是需要綁定。 – dank106 2010-10-13 22:05:14