将布尔(Property)绑定到JavaFX中的List操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将布尔(Property)绑定到JavaFX中的List操作相关的知识,希望对你有一定的参考价值。
在发现我必须重新声明每个字段作为属性之后,我发现JavaFX令人惊讶地表达,所以我有点难以理解并且想知道是否有一种更好的,更加自我的方式将布尔绑定到更复杂的操作喜欢添加和删除样式类。
在这个例子中,我有一个可能有效或无效的项目,我想要选项卡的字体颜色来指示它是什么。我这样做是通过添加和删除错误样式类来实现的:
val errorSwitch = { valid : Boolean ->
logger.debug {"errorSwitcher: $valid"}
if( valid) tab.styleClass.remove("error")
else tab.styleClass.add("error")
Unit
}
product.isValid.onChange (errorSwitch)
errorSwitch(product.isValid.value)
我不喜欢这里的是我必须自己调用该函数开始,因为除非isValid实际发生变化,否则“onChange”显然不会触发。这是一件小事,但我想知道是否有更好的绑定方式,因为这就是我想要的:错误类的存在应绑定到“isValid”
答案
在TornadoFX中,实现此目的的最佳方法是使用toggleClass
函数,该函数将根据布尔可观察值自动添加或删除给定的类。因此你可以简单地说:
tab.toggleClass(Styles.error, product.isValid)
此示例要求您使用TornadoFX的Type Safe CSS功能。阅读指南中有关Type Safe CSS的更多信息:)
以上是关于将布尔(Property)绑定到JavaFX中的List操作的主要内容,如果未能解决你的问题,请参考以下文章
将 Button 的可见性绑定到 ViewModel 中的 bool 值