无法绑定警告:class不是IEventDispatcher

时间:2011-04-07 04:25:29

标签: flex actionscript-3 data-binding

我发现了另一个类似的问题,但是并没有完全遵循那里的解释,也不确定它是否适用于我。

我收到错误:
警告:无法绑定到类'Object'上的属性'Description'(类不是IEventDispatcher)

这只是在数据作为ArrayList绑定到List时。之前我曾经在Datagrid中使用它(就像一个数组)并且没有引起任何问题。我不希望能够将任何数据绑定回类“对象”,甚至不确定它指的是哪个对象。

我的列表数据提供程序是一个ArrayList ..由另一个类中包含的SQL查询的结果事件填充:

   private function loadDayComplete():void
        {   
            var Meals:Array = _day.MealResults;
            var MealsListResult:ArrayList = new ArrayList(Meals);
            MealPanelDataGrid.dataProvider = Meals;
            MealListView.dataProvider = MealsListResult;
        {

我所拥有的日程类是一个数据持有者,可以在24小时内获取所有数据(来自多个表格)。我为每个单独的数据类型编写了类,用于编辑它们。 但是我不确定如果我不计划编辑值,我甚至需要担心警告?每当我触摸任何东西时它都会完全阻塞控制台,所以我真的想摆脱它。 我尝试了一个对象代理,就像我在别处看到的那样,但没有任而且我很困惑为什么它在列表组件上突然出现问题时它不在数据网格上...无论如何,文本现在都在标签字段中,甚至不能 编辑

2 个答案:

答案 0 :(得分:6)

导致此警告的对象可能是Meals数组中的项目。 确保这些项目是强类型的(数据传输对象/值对象模式),Description字段标记为[Bindable]

根据您使用的远程处理机制,您可以使用类似makeObjectsBindable标记的内容,用可绑定的Object实例替换返回的ObjectProxy项。

但我会建议强打字。

答案 1 :(得分:0)

您可以通过dataProvider EventDispatcher ObjectProxy EventDispatcher metaPanelDataGrid.dataProvider = new ObjectProxy(meals); 来摆脱它。它会自动将您的数据包装到指定或无限深度(默认行为)。

ArrayCollection

它与{{1}}基本相同,但更深。