10

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

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

那么问题来了:InvalidateList 和 InvalidateDisplayList 有什么区别?从文档看来,任何一个都应该工作。

4

2 回答 2

18

invalidateList 告诉组件数据发生了变化,需要重新加载并重新渲染。

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

于 2008-09-16T16:55:33.810 回答
0

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

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

于 2008-09-16T16:53:28.603 回答