两个 BooleanProperties 之间的双向反向绑定
Bidirectional inverted binding between two BooleanProperties
首先,幼稚的尝试:
booleanProperty1.bindBidirectional(booleanProperty2.not()); // type mismatch
这行不通。我要么必须将其更改为单向绑定(因此它将接受 BooleanBinding
作为参数)或删除 .not()
.
实际实现我的目标的最佳方法是什么?
为 booleanProperty2 添加侦听器。
在其值发生变化(触发侦听器)时,将 booleanProperty 设置为 booleanProperty2 的相反值。
最简单的方法是将侦听器包含在两个属性中并反转要在其他 属性 上设置的值。
booleanProperty1.addListener((obs,old,val)->booleanProperty2.set(!val));
booleanProperty2.addListener((obs,old,val)->booleanProperty1.set(!val));
首先,幼稚的尝试:
booleanProperty1.bindBidirectional(booleanProperty2.not()); // type mismatch
这行不通。我要么必须将其更改为单向绑定(因此它将接受 BooleanBinding
作为参数)或删除 .not()
.
实际实现我的目标的最佳方法是什么?
为 booleanProperty2 添加侦听器。
在其值发生变化(触发侦听器)时,将 booleanProperty 设置为 booleanProperty2 的相反值。
最简单的方法是将侦听器包含在两个属性中并反转要在其他 属性 上设置的值。
booleanProperty1.addListener((obs,old,val)->booleanProperty2.set(!val));
booleanProperty2.addListener((obs,old,val)->booleanProperty1.set(!val));