Странное поведение в BindingUtils.bindProperty: недетерминированный - PullRequest
1 голос
/ 08 июня 2011

Я немного схожу с ума.

У меня странные проблемы с BindingUtils.bindSetter и bindProperty. Я думал, что, если бы я связал две переменные с BindingUtils.bindProperty, я мог бы быть уверен, что они всегда будут синхронизированы. Но это не так.

У меня есть этот код в creationCompleteHandler:

BindingUtils.bindProperty(this, "pendingHold", drhHold, "pending", false, true);

Но когда я отлаживаю, две переменные, которые должны быть связаны в некоторой точке, имеют разные значения:

enter image description here

Чего мне не хватает?

Заранее спасибо, Нуну

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Связывание, которое вы определили, является односторонним.Когда установлено значение 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].

0 голосов
/ 10 июня 2011

Связывание не требуется в этом случае:

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;
   }
}

До тех пор, пока Class2.pending также является привязываемым, это сделает так, что Class1.pending привязывается к Class2.pending.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...