![](/img/trans.png)
[英]JavaFX - Bind ObjectProperty to member inside another ObjectProperty?
[英]Hot to “flatten” an ObjectProperty of an ObjectProperty in TornadoFX (JavaFX extension)?
假设我有三个班级:
class A {
val bProperty: ObjectProperty<B> = SimpleObjectProperty(B(C("test")))
val cObservable: ObservableValue<C> = ???
}
class B(initialC: C) {
val cProperty: ObjectProperty<C> = SimpleObjectProperty(initialC)
}
class C(val string: String)
正如您可能已经看到的,在类AI中希望有一个cObservable
,它在bProperty
的值更改或当前bProperty.value
的cProperty
值发生更改时更新其值。
我最接近的是这样的:
val cObservable: ObservableValue<ObjectProperty<C>> = nonNullObjectBinding(bProperty) {
value.cProperty
}
但是,这给了我一个ObservableValue
的的ObservableValue
的C
而不是ObservableValue
的C
。 所以这不是我可以使用的。
感谢您的帮助。
您可以使用select
扩展方法:
val cObservable: ObservableValue<C> = bProperty.select { it.cProperty }
要么:
val cObservable: ObservableValue<C> = bProperty.select (B::cProperty)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.