Возможна ли привязка данных в javafx только во время объявления переменной?
-
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;
Это даст вам двунаправленное обновление между двумя переменными.Согласно спецификация языка, вы не можете использовать «привязку» где-либо еще.
Другие советы
Да, вы можете связать переменную только тогда, когда вы ее объявляете.
Не связан с StackOverflow