Возможна ли привязка данных в javafx только во время объявления переменной?

StackOverflow https://stackoverflow.com/questions/1047785

  •  20-08-2019
  •  | 
  •  

Вопрос

Глядя на учебные пособия и примеры 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
Это было полезно?

Решение

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

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;

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top