我有一个 itemRenderer 列表,我只是分别显示项目及其详细信息。我想保持细节不可见,并在我的主 mxml 文件中有一个按钮,显示细节,单击该按钮会使细节可见。
所以,我的问题在于 clickHandler 如何从主 mxml 访问 itemRenderer 中的 details 属性?
在此先感谢您的帮助
我有一个 itemRenderer 列表,我只是分别显示项目及其详细信息。我想保持细节不可见,并在我的主 mxml 文件中有一个按钮,显示细节,单击该按钮会使细节可见。
所以,我的问题在于 clickHandler 如何从主 mxml 访问 itemRenderer 中的 details 属性?
在此先感谢您的帮助
我会在 main 上有一个布尔值,这就是 itemRenderer 的关键。不推荐访问列表的itemRenderers,因为它们是回收的,不能保证操作。
有关说明,请参阅http://www.adobe.com/devnet/flex/articles/itemrenderers_pt1.html
有几种方法可以解决这个问题。
一种是使用包含“ShowDetails”值的全局 Singleton 对象。每个 itemRenderer 都可以访问该对象并更改其设置。Cairngorm 的 ModelLocator 是通常以这种方式使用的单例的一个示例。我相信swiz也有类似的东西。如果需要,您也可以自己滚动。
您可以尝试扩展 List 类 List 将 itemRenderers 保存在一个数组中,我认为这是受保护的。您必须扩展列表,并将这个受保护的数组公开。然后,您将能够访问 itemRenderers 列表并直接修改它们的属性。
但是,我不确定我会推荐这两种方法。itemRenderer 确实应该根据它所显示的数据来选择要显示的内容;不是一些全局变量。您可以更改 dataProvider 中的对象并相应地更新 itemRenderer 吗?这是第三种选择;虽然我不确定它是否比前两种方法更好或更差。
您可以在 DataProvider 数组中将一个名为“show”的变量设置为 false。在 itemrenderer 中,将 details 组件的可见属性绑定到 data.show。
当按下显示按钮时,遍历 dataProvider 数组,并将“显示”属性设置为 true。这将起作用
比什