将布尔(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操作的主要内容,如果未能解决你的问题,请参考以下文章

javafx - 根据布尔值绑定按钮

JavaFX GUI中的关注点分离

WPF Radiobutton(二)(绑定到布尔值)

将 Button 的可见性绑定到 ViewModel 中的 bool 值

使用 tableview (JavaFX) 绑定 hashmap

如何将行和列添加到 JavaFX 8 TableView