1

我正在开发一个 Flex 3 项目,并且正在使用一对 XMLListCollection(s) 来管理组合框和数据网格。

组合框部分工作正常。用于此的 XMLListCollection 是静态的。用户选择一个项目,并在“更改”时触发 addItem() 到第二个集合。然后第二个集合的数据网格显示更新的列表,一切都很好。

然而,数据网格是可编辑的。更复杂的是,我有另一个事件处理程序绑定到第二个 XMLLIstCollection 的“更改”事件,并且在该处理程序中,我对第二个列表进行了额外的更改。这实质上会导致第二个列表“更改”处理程序的无限循环(堆栈溢出 :D )。

我不确定如何处理这个问题。搜索已经提出了关于 AutoUpdate 功能的一两个想法,但我无法从中得到太多。特别是,行为仍然存在,一旦我重新启用就执行“更新”,所以我想我可能做错了。通常,我希望更新运行,而不是在该代码块期间运行。

谢谢你的帮助!

4

2 回答 2

0

您是否考虑过使用 callLater?直接操作 XMLListCollection 的源 XMLList 是否具有相同的结果?你有没有考虑过类似的事情:

private function changeHandler( event:Event ):void
{
    event.target.removeEventListener( event.type, changeHandler );

    // your code here.

    event.target.addEventListener( event.type, changeHandler );
}
于 2009-11-24T17:30:45.763 回答
0

尝试将行为绑定到自定义事件而不是 CHANGE 事件。

即做你现在正在做的事情,但是调度和处理一个自定义事件来完成工作。

于 2009-11-23T10:59:20.650 回答