是否可以仅刷新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