当底层ArrayCollection发生变化时,如何刷新Datagrid中显示的数据?
<nmoschitz:dataProvider>
<mx:HierarchicalData source="{arrCol_groupedData}"
childrenField="accounts"/>
</nmoschitz:dataProvider>
调用简单刷新(例如使用简单的数组收集作为数据提供者,或在分组收集上刷新)不起作用。 同时将arrayCollection重新分配给Hierarchical Data,然后再将此分配给Datagrid也不起作用(即使调用invalidateProperties()或validateNow())。
有什么想法吗?有人建议扩展HierarchicalData并抛出一个手动更改事件,但这对我来说似乎很不合适。
谢谢, 马丁
答案 0 :(得分:1)
您可以尝试刷新arrayCollection,然后在网格上调用invalidateList()
答案 1 :(得分:0)
我将整个分层数据重新分配给datagrid。但是,只需要将arraycollection重新分配给分层数据。这解决了这个问题。
答案 2 :(得分:0)
您可以扩展HierarchicalData
并覆盖source
属性设置器以抛出CollectionChange事件:
package mypackage
{
import mx.collections.HierarchicalData;
import mx.events.CollectionEvent;
import mx.events.CollectionEventKind;
public class ModifiedHierarchicalData extends HierarchicalData
{
override public function set source(value:Object):void
{
super.source = value;
var event:CollectionEvent =
new CollectionEvent(CollectionEvent.COLLECTION_CHANGE) ;
event.kind = CollectionEventKind.RESET;
dispatchEvent(event);
}
}
}
答案 3 :(得分:0)
只需展开根节点,然后以编程方式再次关闭即可刷新UI。
Authorization