L'associazione dei dati in javafx è possibile solo durante la dichiarazione delle variabili?

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

  •  20-08-2019
  •  | 
  •  

Domanda

Guardando i tutorial e gli esempi javafx, le associazioni vengono sempre fatte durante le dichiarazioni varibale:

def y = bind x;

o

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

Ma cosa devo fare se ho un oggetto esistente - e quindi non lo dichiaro - e voglio legarne uno. Nel mio caso carico un SVGPath con FXDLoader e quindi voglio associare SVGPath.visible a una variabile. Come posso raggiungere questo obiettivo?

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
È stato utile?

Soluzione

È possibile utilizzare un trigger di sostituzione, ad esempio

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

Potresti anche essere in grado di fare:

def data = bind sc.visible with inverse;

Questo ti darebbe aggiornamenti bidirezionali tra le due variabili. Secondo la specifica della lingua , non puoi usa " bind " altrove.

Altri suggerimenti

Sì, puoi associare una variabile solo quando la stai dichiarando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top