当 TableView selectedItem 不为空时启用按钮
Button enableWhen TableView selectedItem is not empty
TableView selectedItem 绑定到 ViewModel,我想在 selectedItem 为 null 时禁用按钮,否则启用。
class MainView: View("TheSubberKt") {
override val root = Form()
val model = MainViewModel()
init {
with(root) {
fieldset {
field("Media:") {
textfield(model.mediaPath)
button("...")
}
}
tableview(subs) {
// ...
bindSelected(model.selectedSubtitle)
}
hbox {
button("Hash Search")
button("Download Selected") {
// what to do here?
}
}
}
}
}
我想我必须创建一个 OvservableValue<Boolean>
然后传递给 enableWhen
但是,该怎么做?
是否可以将 属性 onChange
映射到自定义可观察对象? (只是另一个想法)
可观察值有一个函数,当它们不包含值时会 return 一个 BooleanBinding
,并且由于您已经将所选项目绑定到 model.selectedSubtitle
,您可以简单地在按钮构建器中添加以下表达式:
enableWhen(model.selectedSubtitle.isNotNull)
如果您没有将 TableView 的选定项绑定到视图中可访问的 属性,您可以直接存储对 table 的引用并绑定到 [= 中的状态29=]的选型模型:
enableWhen(table.selectionModel.selectedItemProperty().isNotNull)
另一方面,您可以通过删除 init
块并直接使用构建器声明根节点来清理语法:
override val root = tableview(subs) {
...
}
希望这对您有所帮助:)
TableView selectedItem 绑定到 ViewModel,我想在 selectedItem 为 null 时禁用按钮,否则启用。
class MainView: View("TheSubberKt") {
override val root = Form()
val model = MainViewModel()
init {
with(root) {
fieldset {
field("Media:") {
textfield(model.mediaPath)
button("...")
}
}
tableview(subs) {
// ...
bindSelected(model.selectedSubtitle)
}
hbox {
button("Hash Search")
button("Download Selected") {
// what to do here?
}
}
}
}
}
我想我必须创建一个 OvservableValue<Boolean>
然后传递给 enableWhen
但是,该怎么做?
是否可以将 属性 onChange
映射到自定义可观察对象? (只是另一个想法)
可观察值有一个函数,当它们不包含值时会 return 一个 BooleanBinding
,并且由于您已经将所选项目绑定到 model.selectedSubtitle
,您可以简单地在按钮构建器中添加以下表达式:
enableWhen(model.selectedSubtitle.isNotNull)
如果您没有将 TableView 的选定项绑定到视图中可访问的 属性,您可以直接存储对 table 的引用并绑定到 [= 中的状态29=]的选型模型:
enableWhen(table.selectionModel.selectedItemProperty().isNotNull)
另一方面,您可以通过删除 init
块并直接使用构建器声明根节点来清理语法:
override val root = tableview(subs) {
...
}
希望这对您有所帮助:)