dados é obrigatório em javafx só é possível durante a declaração da variável?
-
20-08-2019 - |
Pergunta
Olhando para os tutoriais do JavaFX e amostras, as ligações são sempre feitas durante declarações varibale:
def y = bind x;
ou
def address = Address {
street: bind myStreet;
};
Mas o que eu faço, se eu tiver um objeto exisiting - e, portanto, não declará-la - e deseja vincular um de seus atributos. No meu caso eu carregar um SVGPath com o FXDLoader e depois deseja vincular SVGPath.visible a uma variável. Como posso conseguir isso?
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
Solução
Você pode usar um substituir gatilho ao invés por exemplo.
var fxdContent = FXDLoader.load("{__DIR__}plan.fxz");
var sc = fxdContent.lookup("SC0013") as SVGPath;
var data = true on replace {
sc.visible = data;
}
Você também pode ser capaz de fazer:
def data = bind sc.visible with inverse;
Isto lhe daria atualizações bidirecionais entre as duas variáveis. De acordo com a linguagem de especificação , você não pode uso "bind" em qualquer outro lugar.
Outras dicas
Sim, você pode vincular uma variável apenas quando você está declarando-lo.