我有一个具有两个属性标签和值的可绑定模型类(我们称之为 myModel)。该值经常更新,因此它被标记为可绑定。到目前为止工作正常,数据已更新并已调度标准属性更改事件。
现在我必须从这个模型的对象实例中创建一个 ArrayCollection 以将其用作数据组中的数据提供者。然后将数据传递给自定义 itemRenderer,在其中我通过 data.label 和 data.value 访问 myModel 属性。
我现在遇到的唯一问题是 myModel value 属性不再更改(我想是因为我将对象存储在 ArrayCollection 中)。
顺便说一句,ArrayCollection 也被标记为可绑定的,因为 myModel 的新对象实例可以在运行时添加。
有什么办法可以使这项工作?任何有关这方面的帮助将不胜感激!
编辑:我差点忘了,myModel 类中的值对象是由另一个可绑定类更新的。是的,我知道这很疯狂,但这就是我来这里的原因,以获得一些更简单(实际上有效)的方法来解决这个问题。
第二次编辑:好的,一些代码来说明这个问题;
让我们从第一个可绑定类开始;
[Bindable]
public class FirstClass
{
public var name:String;
public var firstValue:Number;
public var secondValue:Number;
public var thirdValue:Number;
public function FirstClass()
{ }
}
值(第一到第三)由控制器类更新。到目前为止,一切都很好。现在到第二个模型类(为了一致性,让我们保留 MyClass 名称)
[Bindable]
public class MyClass
{
public var label:String;
public var value:Number;
public function FirstClass()
{ }
}
这是两个模型类。这背后的背景是,我需要 FirstClass 实例的每个属性的字符串值(标签)。我想让这更简单,所以我真的不喜欢这个“解决方案”咳嗽;)。
无论如何,我们已经有了这两个模型,现在到我的 .mxml 类;
[Bindable] private var firstClassInstance:FirstClass;
我创建一个新的 ArrayCollection 并添加这样的对象;myArrayCollection.addItem(new MyClass("这是一个标签", firstClassInstance.firstValue));
同样,DataGroup 使用这个 ArrayCollection 作为数据提供者。
正如我们已经建立的(感谢@Windowns),ArrayCollection 仅查找正在添加或删除的对象,而不是这些对象的属性更改。