1

例如,我想这样做:我有一个 StringProperty,它是一个 IntegerProperty 和另一个 StringProperty 的组合,如下所示:

  • 字符串属性 A = "foo"
  • 整数属性 B = 3
  • 结果 StringProperty C = "foo 3"

如何“绑定”属性,以便在更改 A 或 B 时更改 C?(请注意,我不想对 C 所做的更改做出反应)

我尝试使用stringBinding()方法,但我不清楚这种方法是如何工作的,关于它的文档也不清楚。

4

1 回答 1

2

stringBinding是你想要的。第一个参数将this在计算块内,如果this是可观察值,它将作为依赖项添加,用于计算何时应重新计算字符串绑定。其余参数(仅b在此处)也作为重新评估依赖项添加。

如果你这样做stringBinding(a, b) { "${a.value} ${b.value}" }了,你已经创建了一个字符串绑定,它会在任何一个ab改变时更新。既然thisa上面的例子中,你也可以写进去,stringBinding(a, b) { "${this.value} ${b.value}" }但我认为这不会让它更清楚:)

通过以下示例,我们决定制作第一个元素的原因this更加明显:

val sizeDescription = bind(items) { "$size elements in list" }

在这里,您无需items再次引用即可获得它的size属性。

于 2017-02-07T12:00:41.623 回答