Wenn ich zwei Eigenschaften in JavaFx bidirektional binde, die mit verschiedenen Werten beginnen, die genommen werden?Welcher Wert wird verwendet, wenn zwei Eigenschaften mit unterschiedlichen Werten bidirektional verknüpft werden?
ObjectProperty<MyType> property1 = new SimpleObjectProperty(value1);
ObjectProperty<MyType> property2 = new SimpleObjectProperty(value2);
property1.bindBidirectional(property2);
// will both properties be set to value1 or to value2?
In meinen Tests (etwas anderes Setup), scheint property2
auf den Wert von property1
eingestellt werden. Aber ist das ein Zufall oder ist das Verhalten, auf das ich mich verlassen kann? Ich habe in der API nichts dazu gefunden.
Weil ich nicht sicher sein kann, ich zur Zeit das folgende Muster verwenden, aber dies scheint überflüssig zu mir:
ObjectProperty<MyType> property1 = new SimpleObjectProperty(value1);
ObjectProperty<MyType> property2 = new SimpleObjectProperty(value2);
property1.setValue(property2.getValue());
property1.bindBidirectional(property2);
Warum sie nicht geben den gleichen Anfangswert? – Bohemian
@Bohemian In realistischen Situationen sind diese nicht nebeneinander. Aber es gibt einen führenden Wert in meinem Modell, in dem ein Standardwert festgelegt ist. Dann werden die Steuerelemente an diesen Standardwert gebunden (z. B. der ausgewählte Wert einer Auswahlbox). – Thirler