1

我有一个 itemRenderer 列表,我只是分别显示项目及其详细信息。我想保持细节不可见,并在我的主 mxml 文件中有一个按钮,显示细节,单击该按钮会使细节可见。

所以,我的问题在于 clickHandler 如何从主 mxml 访问 itemRenderer 中的 details 属性?

在此先感谢您的帮助

4

3 回答 3

0

我会在 main 上有一个布尔值,这就是 itemRenderer 的关键。不推荐访问列表的itemRenderers,因为它们是回收的,不能保证操作。

有关说明,请参阅http://www.adobe.com/devnet/flex/articles/itemrenderers_pt1.html

于 2010-07-14T14:28:41.230 回答
0

有几种方法可以解决这个问题。

一种是使用包含“ShowDetails”值的全局 Singleton 对象。每个 itemRenderer 都可以访问该对象并更改其设置。Cairngorm 的 ModelLocator 是通常以这种方式使用的单例的一个示例。我相信swiz也有类似的东西。如果需要,您也可以自己滚动。

您可以尝试扩展 List 类 List 将 itemRenderers 保存在一个数组中,我认为这是受保护的。您必须扩展列表,并将这个受保护的数组公开。然后,您将能够访问 itemRenderers 列表并直接修改它们的属性。

但是,我不确定我会推荐这两种方法。itemRenderer 确实应该根据它所显示的数据来选择要显示的内容;不是一些全局变量。您可以更改 dataProvider 中的对象并相应地更新 itemRenderer 吗?这是第三种选择;虽然我不确定它是否比前两种方法更好或更差。

于 2010-07-14T14:29:51.603 回答
0

您可以在 DataProvider 数组中将一个名为“show”的变量设置为 false。在 itemrenderer 中,将 details 组件的可见属性绑定到 data.show。

当按下显示按钮时,遍历 dataProvider 数组,并将“显示”属性设置为 true。这将起作用

比什

于 2010-07-14T14:30:11.700 回答