Apache flex Flex MXML绑定与Actionscript绑定

Apache flex Flex MXML绑定与Actionscript绑定,apache-flex,data-binding,itemrenderers,Apache Flex,Data Binding,Itemrenderers,我希望有人能解释一下使用MXML卷曲绑定时引擎盖下发生了什么 例如,对于ItemRenders: 如果我通过MXML将一些控件绑定到数据源,例如: text={data.myText} 不知何故,这些绑定似乎被自动清除了 但是,如果我使用Actionscript绑定,我应该何时调用unwatch()?如何知道itemRenderer何时不再使用 MXML绑定如何知道何时取消绑定?使用actionscript,您需要保留一个watcher实例并自己清理它。大括号本质上是一种“快捷方式”,它创建了大

我希望有人能解释一下使用MXML卷曲绑定时引擎盖下发生了什么

例如,对于ItemRenders:

如果我通过MXML将一些控件绑定到数据源,例如:

text={data.myText}

不知何故,这些绑定似乎被自动清除了

但是,如果我使用Actionscript绑定,我应该何时调用unwatch()?如何知道itemRenderer何时不再使用


MXML绑定如何知道何时取消绑定?

使用actionscript,您需要保留一个watcher实例并自己清理它。大括号本质上是一种“快捷方式”,它创建了大量额外的代码来处理绑定和清理自身(另外还要确保它不在依赖循环中)。这是为了方便起见,而actionscript版本提供了更多的控制,但创建了更多可见的代码


我可以继续讲下去,但是Michael Labriola已经对这个主题有了一个新的认识。

我知道我需要清理一下自己,这些代码是由MXML绑定生成的。出现这个问题的原因是,在某些情况下,似乎无法判断何时进行清理(例如在项目渲染器中),但MXML绑定不知何故知道。啊,您的问题很模糊。首先,项目渲染器是自己回收的,所以它节省了很多“清理”时间,但主要是因为弱引用的标志。这让GC知道,如果不再使用项目呈现器,它仍然可以处理它,因为它没有到数据的硬链接。您可以对actionscript执行相同的操作,但如果可能,请尽量避免使用它(例如使用IDisposable接口进行清理)?生成与MXML绑定等效的本质是为propertyChange事件添加一个弱事件侦听器?说实话,我从来没有看过生成和包装的所有代码。这可能是因为它不使用弱引用,而只是侦听addToStage/removeFromStage事件的组件,以知道何时清理。查一下。谢谢你的信息!我甚至想知道的原因是因为有一些复杂的渲染器,我不想重新运行set data()方法。正在尝试更新数据源中的数据:dataProv[2].myPerson.cars=[car1,car2,car3],并让渲染器检测更改并运行适当的代码,而不会使列表无效或重新设置数据。使用弱侦听器仍然会运行代码,直到它被GC’d,这也是我试图避免的。