绑定问题,无法绑定到类*上的属性*

时间:2012-05-24 08:14:11

标签: actionscript-3 flex flex4 mxml

我有一个名为Student的类,它有几个属性以及属性"isSelected:Boolean",类定义为Bindable。

[Bindable]
[RemoteClass(alias="portal::Student")]
public class Student

在mxml应用程序中,我有一个datagrid,其dataprovider已设置为StudentsCollection的Students。我有一个用于datagrid的checkboxex列以及一个headerItemRenderer复选框,该复选框应该选择所有学生(应该选择或取消选择行中的所有复选框)。

我已经为标题中的复选框的click事件定义了一个处理程序,它将dataProvider中每个Student对象的isSelected属性设置为false或true。但是,单击标题中的此复选框,我会收到警告:无法绑定到类'Student'上的属性'isSelected',因此行中的复选框不会更新。

我不明白为什么绑定在这里不起作用而且不知道如何解决这个问题。任何帮助是极大的赞赏。

3 个答案:

答案 0 :(得分:0)

让你的actionscript类扩展EventDispatcher(绑定基于事件调度)。

答案 1 :(得分:0)

这取决于,我猜你在代码中有一个对学生实例的引用,你想要绑定。此引用也必须声明为[Bindable],以使绑定链起作用。

此外,当您不依赖ActionScript来使绑定工作时,您不必扩展EventDispatcher,因为MXML将为您生成该代码(关于Cosma的注释)。

您是否定义了内联渲染器?在我看来,这不是最佳选择,因为生成组件并且调试变得模糊,因为您可能会遇到范围问题。我建议实现一个新组件,实现IDataRenderer并通过实时循环将数据传播给子项,或者在MXML中实现组件。为什么选择IDataRenderer?这个界面是必要的。

另外,我不确定那个,但不应该是

    [Bindable]
    [RemoteClass(alias="portal.Student")]
    public class Student {}

答案 2 :(得分:0)

您需要确保ItemRenderer将传入数据保存在标记为[Bindable]的属性中。你想要传递整个学生,而不仅仅是“isSelected”......