【问题标题】:Adobe Flex Flash Builder DataGrid dataProvider CollectionEvent.COLLECTION_CHANGE handler's access to DataGrid?Adobe Flex Flash Builder DataGrid dataProvider CollectionEvent.COLLECTION_CHANGE 处理程序对 DataGrid 的访问?
【发布时间】:2011-01-16 17:58:35
【问题描述】:

我在 COLLECTION_CHANGE 事件中添加了一个 eventListener,当用户单击列标题后,当网格完成对其 dataProvider 中的项目进行重新排序时触发该事件:

MyType (myDataGrid.dataProvider).addEventListener(CollectionEvent.COLLECTION_CHANGE, onDataGridResort); ... 私有函数 onDataGridResort(e:CollectionEvent) : void { }

MyDataGrid 有一些用于处理 dataProvider 的自定义辅助方法,从 onDataGridResort 函数内部访问它们会很有用。我可以访问 dataProvider 已附加到的数据网格吗?当我在调试器中检查“e”(CollectionEvent)时,我看到了

[遗传] 当前目标 听众 [0] [1] [2] 保存的这个 MyDataGrid

从这个事件处理程序内部获取网格组件似乎是一种不可靠的方式——是否总是可以在 currentTarget 下的侦听器数组中偏移 [2] 处的属性 savedThis 处找到网格?

【问题讨论】:

    标签: flash sorting apache-flex events


    【解决方案1】:

    依赖currentTarget.listeners 属性是非常不可靠的。从事件侦听器访问网格的问题是dataProvider 广播事件,而不是网格。所以事件和网格之间真的没有关系。

    在上面的示例中,您似乎可以使用myDataGrid 直接访问网格。如果在您的实际应用中不是这种情况,那么您需要创建一个包装类,其中包含对MyDataGridonDataGridResort 的引用,可以从事件处理程序中引用网格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 2015-05-08
      • 2012-11-30
      • 2012-02-11
      相关资源
      最近更新 更多