¿El enlace de datos en javafx solo es posible durante la declaración de variable?
-
20-08-2019 - |
Pregunta
Mirando los tutoriales y muestras de JavaFX, los enlaces siempre se realizan durante las declaraciones varibale:
def y = bind x;
o
def address = Address {
street: bind myStreet;
};
Pero, ¿qué hago si tengo un objeto existente, y por lo tanto no lo declaro, y quiero vincular uno de sus atributos? En mi caso, cargo SVGPath con FXDLoader y luego quiero vincular SVGPath.visible a una variable. ¿Cómo puedo lograr esto?
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
Solución
Puede usar un activador de reemplazo en su lugar, por ejemplo,
var fxdContent = FXDLoader.load("{__DIR__}plan.fxz");
var sc = fxdContent.lookup("SC0013") as SVGPath;
var data = true on replace {
sc.visible = data;
}
También puede hacer:
def data = bind sc.visible with inverse;
Esto le daría actualizaciones bidireccionales entre las dos variables. De acuerdo con la especificación del idioma , no puede use " bind " en cualquier otro lugar.
Otros consejos
Sí, puede vincular una variable solo cuando la declara.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow