1

我在我的数据网格中使用自定义项渲染器,并且需要根据渲染器中的任何值是否存在负值来使按钮可见或不可见。所以我想在第一个渲染器关闭时将标志设置为 false,如果有任何负值,将其设置为 true,最后检查标志的值。我知道每次在渲染器实例中更改数据时我都可以调度一个 dataChange 事件,但我想知道是否有任何方法可以知道它们何时完成?谢谢!

4

2 回答 2

2

没有这样的事件。

与任何其他 Flex 组件一样,渲染器将CREATION_COMPLETE在创建后调度 a。 ItemRenderers通常被回收(同一个对象被分配新的数据来渲染),因此监听CREATION_COMPLETE是不够的,除非你禁用回收。

对于 Spark组件,您可以通过设置布局类List来禁用回收。useVirtualLayout=false我不确定 SparkDataGrid类是否支持这一点。MX DataGrid 可能有其他方法可以做到这一点。

但是,禁用回收可能会影响性能。我认为您对活动的想法DATA_CHANGE是最好的解决方案:

  • 确定数据的初始状态(即:是否有任何负值)
  • 在渲染器中,使用 DATA_CHANGE 事件(或者只是覆盖渲染器data属性的设置器)来了解数据何时发生变化
  • 当数据发生变化时,调度一个会冒泡的自定义事件类。这个事件有一个属性告诉你值是否为负。
  • 由于来自渲染器的自定义事件会冒泡到网格中,因此您可以在网格上添加一个侦听器来处理来自所有渲染器的更改。
于 2012-07-12T17:35:59.090 回答
1

你应该看看 RendererExistenceEvents。您应该能够根据列表中有多少项目或至少一次应该查看多少项目来判断它们何时全部创建。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/events/RendererExistenceEvent.html

于 2012-07-16T07:44:50.760 回答