例如,我想这样做:我有一个StringProperty,它是IntegerProperty和anoter StringProperty的组合,如下所示:
我如何“绑定”属性,以便在更改A或B时C更改? (请注意,我不想对C)所做的更改作出反应。
我尝试使用stringBinding()
方法,但我不清楚这种方法是如何工作的,有关它的文档还不清楚。
答案 0 :(得分:2)
stringBinding
就是你想要的。第一个参数将在计算块内变为this
,如果this
是可观察值,则它将作为依赖项添加,用于计算何时应重新评估字符串绑定。其余参数(此处仅b
)也作为重新评估依赖项添加。
如果您执行stringBinding(a, b) { "${a.value} ${b.value}" }
,则表示您创建了一个字符串绑定,只要a
或b
发生更改,该字符串绑定就会更新。由于上面示例中的this
为a
,您也可以使用stringBinding(a, b) { "${this.value} ${b.value}" }
编写,但我认为不会让它更清晰:)
我们决定制作第一个元素this
的原因通过以下示例更加明显:
val sizeDescription = bind(items) { "$size elements in list" }
此处您无需再次引用items
即可获取size
属性。