invalidateList 和 invalidateDisplayList 有什么区别?
-
09-06-2019 - |
题
我有一个 DataGrid,其中填充有 ArrayCollection 中的对象。更新对象的字段之一后,我希望更新屏幕。数据源不可绑定,因为我是在运行时构建它的(而且我还不知道如何使其可动态绑定——这是另一个问题)。
在这种情况下,如果我在网格上调用 InvalidateDisplayList() 似乎什么也没有发生。但如果我调用 invalidateList(),更新就会发生。(而且它也非常流畅——没有像我期望的那样在 WIN32 中使窗口失效时出现闪烁。)
所以问题是:InvalidateList 和 InvalidateDisplayList 有什么区别?从文档来看,似乎任何一个都应该有效。
解决方案
invalidateList告诉组件数据已经改变,需要重新加载并重新渲染。
invalidateDisplayList 告诉组件它需要重新绘制自身(但不一定重新加载其数据)。
其他提示
invalidateDisplayList() 仅设置一个标志,以便稍后在屏幕更新期间可以调用 updateDisplayList()。invalidateList() 就是你想要的。
http://livedocs.adobe.com/flex/2/langref/mx/core/UIComponent.html#invalidateDisplayList()
不隶属于 StackOverflow