执行顺序:两个绑定中的一个属性?

时间:2016-11-03 08:50:43

标签: javafx binding

当我在两个不同的绑定中具有属性作为依赖关系时;属性是更改 - 首先调用/重新计算什么绑定?

我做了一次练习:

        y.bind(a.or(b));

        x.bind(a.or(c));

        x.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
            System.out.println("x has changed");
        });

        y.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
                System.out.println("y has changed");    
        });

当我更改 a 时,第一个绑定,其中 a 被添加为依赖关系被调用(y)。那么,只是附加物的顺序还是还有什么需要知道的?调用顺序是:y-listener,x-listener

编辑:

当我为 a 添加监听器时:

  a.addListener((ObservableValue<? extends Boolean> arg0, Boolean          oldValue, Boolean newValue) -> {
            System.out.println("a has changed");
        });

        y.bind(a.or(b));

        x.bind(a.or(c));

        x.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
            System.out.println("x has changed");
        });

        y.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
                System.out.println("y has changed");    
        });

但是我添加了一个额外的监听器 a bevor绑定了,仍然是这样的呼叫顺序,但为什么?: y-listener,x-listener,a-listener。

提前谢谢

0 个答案:

没有答案