我有点生气。
BindingUtils.bindSetter
和bindProperty
我遇到了奇怪的问题。我想,如果我用BindingUtils.bindProperty
绑定两个变量,我可以肯定它们总是会同步的。但事实并非如此。
我在creationCompleteHandler中有这段代码:
BindingUtils.bindProperty(this, "pendingHold", drhHold, "pending", false, true);
但是当我调试时,应该在某个点绑定在一起的两个变量具有不同的值:
我错过了什么?
提前致谢, 努诺
答案 0 :(得分:1)
您定义的绑定是单向的。设置drhHold.pending
后,this.pendingHold
将被设置。这不是反过来。
换句话说,如果您有以下代码,您所描述的内容可能会发生:
this.drhHold.pending = false;
this.pendingHold = true;
如果您希望双向进行,则需要设置另一个方向:
BindingUtils.bindProperty(this, "pendingHold", drhHold, "pending", false, true);
BindingUtils.bindProperty(drhHold, "pending", this, "pendingHold", false, true);
当然,所有这些都假定这两个属性都是[Bindable]
。
答案 1 :(得分:0)
在这种情况下不需要绑定:
public class Class1
{
private var _class2:Class2 = new Class2();
[Bindable]
public function get pending():Boolean
{
return this._class2.pending;
}
public function set pending(value:Boolean):void
{
this._class2.pending = value;
}
}
只要Class 2.pending也是可绑定的,这将使Class1.pending绑定到Class2.pending。