En TornadoFX, ¿cómo puedo hacer que una propiedad cambie cuando cambian otras properties?

Por ejemplo, quiero hacer esto: tengo StringProperty, y es una combinación de IntegerProperty y anoter StringProperty, como esta:

  • StringProperty A = "foo"
  • IntegerProperty B = 3
  • Result StringProperty C = "foo 3"

¿Cómo puedo "enlazar" las properties de modo que C cambie cuando se modifican A o B? (Tenga en count que no quiero reactjsr a los cambios realizados a C)

Intenté utilizar el método stringBinding() , pero no me queda claro cómo funciona exactamente este método y no está clara la documentation al respecto.

stringBinding es lo que quieres. El primer argumento se convertirá en this dentro del bloque de cálculo, y si this es un valor observable, se agregará como una dependencia utilizada para calcular cuándo se debe volver a evaluar el enlace de cadena. El rest de los parameters (solo aquí) se agregan como dependencies de reevaluación también.

Si hace stringBinding(a, b) { "${a.value} ${b.value}" } , ha creado un enlace de cadena que se actualizará cada vez que cambie b . Dado que this es a en el ejemplo anterior, también podría haber escrito en stringBinding(a, b) { "${this.value} ${b.value}" } pero no creo que eso lo aclare más 🙂

La razón por la que decidimos hacer el primer elemento this se hace más evidente con el siguiente ejemplo:

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

Aquí no necesita volver a hacer reference a los items para get su propiedad de size .

  • Usar bibliotecas de UI de terceros con TornadoFX
  • Cómo implementar TornadoFX WebEngine Callback en Kotlin
  • TornadoFX: permite copyr un elemento de una vista de list al portapapeles
  • ¿Cómo llenar el ancho de la tabla disponible con columnas?
  • TornadoFX reemplaza el layoutChildren en la región
  • Cómo ejecutar tornado fx hello world con java 7
  • Cómo cambiar la vista en TornadoFx
  • Animación consecutiva en TornadoFX?
  • En TornadoFX, ¿cómo puedo separar layouts en diferentes classs y luego usarlos en el generador?
  • ¿Cómo cancelar la suscripción a events en TornadoFX?
  • Cómo crear una pantalla de inicio en tornadofx