是否可以僅刷新Flex DataProvider中的一個項目?只刷新數據提供者的一部分。可能?
例如,實現這樣的事情
[Bindable]
private var nodes : VectorCollection = new VectorCollection();
/* thousands of insertions on nodes */
/* Triggered by some event */
public function nodeStatusChanged(nodeId : Number) : void {
nodes.refresh(nodeId);
}
,而不是在每一個nodeStatusChanged(nodeId)
呼叫
任何想法做 nodes.refresh()
? 在此先感謝。
我不知道我理解你的問題。如果您更改集合中的一個元素,它應該**派發相應的CollectionChange事件。我在這裏做一些假設:1)你使用的VectorCollection類實現IList接口(因此你可以使用基於矢量的集合來處理任何需要ArrayCollection或類似IList類的東西),2)VectorCollection調度合適的CollectionChange事件表示集合中的一個或多個項目已更改(如ArrayCollection所做的那樣)。 – 2013-03-16 00:25:25
PS:幾年前,我寫了[我自己的VectorCollection類](https://github.com/sunild/Flex-Collection-Utils),併發送了正確的CollectionChange事件。實施的目標是通過減少將要發生的鑄造量來儘可能保持高性能。 – 2013-03-16 00:28:32