我已经绑定了三个属性形成一个绑定循环。但我不确定如何解释结果。
DoubleProperty d1 = new SimpleDoubleProperty(1);
DoubleProperty d2 = new SimpleDoubleProperty(2);
DoubleProperty d3 = new SimpleDoubleProperty(3);
d1.bind(d2.multiply(2)); //d1 = 4
d2.bindBidirectional(d3);//d2 = 3, d1 = 6
d3.bind(d1);
最后,输出是
d1 = 12.0,d2 = 6.0,d3 = 12.0
问题是为什么d1,d2和d3的值不等于24,12和24?
停止绑定的规则是什么?
我想我在这里收到错误。
答案 0 :(得分:0)
绑定检测到绑定中的无限循环。你改变的第一个值是d3。 d3改变后第二次停止计算下一个值。所以规则就是如果第二次更改属性,是循环并且计算停止。只需调试此代码,看看如果您感兴趣,会发生什么;)