我有一个 DataGrid,其中填充有 ArrayCollection 中的对象。更新对象的字段之一后,我希望更新屏幕。数据源不可绑定,因为我是在运行时构建它的(而且我还不知道如何使其可动态绑定——这是另一个问题)。

在这种情况下,如果我在网格上调用 InvalidateDisplayList() 似乎什么也没有发生。但如果我调用 invalidateList(),更新就会发生。(而且它也非常流畅——没有像我期望的那样在 WIN32 中使窗口失效时出现闪烁。)

所以问题是:InvalidateList 和 InvalidateDisplayList 有什么区别?从文档来看,似乎任何一个都应该有效。

有帮助吗?

解决方案

invalidateList告诉组件数据已经改变,需要重新加载并重新渲染。

invalidateDisplayList 告诉组件它需要重新绘制自身(但不一定重新加载其数据)。

其他提示

invalidateDisplayList() 仅设置一个标志,以便稍后在屏幕更新期间可以调用 updateDisplayList()。invalidateList() 就是你想要的。

http://livedocs.adobe.com/flex/2/langref/mx/core/UIComponent.html#invalidateDisplayList()

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top