2

查看 javafx 教程和示例,始终在变量声明期间进行绑定:

def y = bind x;

或者

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

但是,如果我有一个现有的对象——因此不声明它——并且想要绑定它的一个属性,我该怎么办。在我的情况下,我使用 FXDLoader 加载 SVGPath,然后想将 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
4

2 回答 2

2

您可以使用替换触发器,例如

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;

这将为您提供两个变量之间的双向更新。根据语言规范,您不能在其他任何地方使用“绑定”。

于 2009-06-26T08:35:03.230 回答
0

是的,只有在声明变量时才能绑定变量。

于 2009-06-27T10:15:00.243 回答