【发布时间】:2013-05-17 12:41:54
【问题描述】:
我正在使用 Flex/Air 开发 iPad 应用程序。 我在自定义列表项渲染器中遇到数据绑定问题。
我有一个包含类集合的列表作为数据提供者。 每个类都启用了一个静态属性。我使用项目渲染器显示每个类,其中启用 Class 属性时启用我的项目渲染器。
类看起来像这样:
public class MyClass
{
public static const var name:String = "My Class";
private static var enabled:Boolean = false;
[Bindable]
public static function get enabled():Boolean
{
return enabled;
}
public static function set enabled(value:Boolean):Boolean
{
enabled = value;
}
}
然后我有列表:
<list dataProvider={new ArrayCollection([MyClass])} itemRenderer="CustomItemRenderer"/>
CustomItemRenderer 看起来像这样:
<s:ItemRenderer autoDrawBackground="false" enabled={data.enabled}>
<s:label text={data.name}/>
<s:/ItemRenderer>
所以当我更改 MyClass 的启用属性时,列表不会更新。 项目渲染器仍处于禁用状态。
MyClass.enabeled = true;
你知道问题是什么吗?
提前感谢您! 伊万
【问题讨论】:
-
请分享一些代码。例如,我不知道这是什么意思“我使用项目渲染器显示每个类,当启用 Class 属性时,我的项目渲染器被启用。”您不能更改类的属性——除非它们是静态属性,这可能不是这里的情况。您必须在类的实例上更改它们。您要更改哪些属性;你如何改变它们?您可能需要在 ArrayCollection 上调用 itemUpdated
-
你好,我已经分享了一些例子。我希望它能帮助你更好地理解我的问题。感谢您的关注。
标签: ipad apache-flex mobile air