簡體   English   中英

在TornadoFX中,如何更改其他屬性?

[英]In TornadoFX, how can I make one Property change when other properties are changed?

例如,我要這樣做:我有一個StringProperty,它是IntegerProperty和注釋器StringProperty的組合,如下所示:

  • StringProperty A =“ foo”
  • 整數屬性B = 3
  • 結果StringProperty C =“ foo 3”

如何“綁定”屬性,以便在更改A或B時更改C? (請注意,我不想對C所做的更改做出反應)

我嘗試使用stringBinding()方法,但是我不清楚此方法的確切工作方式,也不清楚它的文檔。

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屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM