Возможно ли связывание данных в javafx только во время объявления переменных? - PullRequest
2 голосов
/ 26 июня 2009

Глядя на учебники и примеры по javafx, привязки всегда делаются во время объявлений varibale:

def y = bind x;

или

def address = Address {
  street: bind myStreet;
};

Но что мне делать, если у меня есть существующий объект - и, следовательно, я не объявляю его и хочу связать один из его атрибутов. В моем случае я загружаю SVGPath с FXDLoader и затем хочу связать SVGPath.visible с переменной. Как мне этого добиться?

var data = true;
var fxdContent = FXDLoader.load("{__DIR__}plan.fxz");
var sc = fxdContent.lookup("SC0013") as SVGPath;
sc.visible = bind data; //That doesn't work

Ответы [ 2 ]

2 голосов
/ 26 июня 2009

Вместо этого вы можете использовать триггер замены, например,

var fxdContent = FXDLoader.load("{__DIR__}plan.fxz");
var sc = fxdContent.lookup("SC0013") as SVGPath;
var data = true on replace {
    sc.visible = data;
}

Вы также можете сделать:

def data = bind sc.visible with inverse;

Это даст вам двунаправленные обновления между двумя переменными. В соответствии со спецификацией , вы не можете использовать «привязку» где-либо еще.

0 голосов
/ 27 июня 2009

Да, вы можете связать переменную только тогда, когда вы объявляете ее.

...