在 TornadoFX 中重用元素

Reuse elements in TornadoFX

如何使组件在 TornadoFX 中可重用?让我们假设我有这样定义的表视图:

tableview<MyObj>(items) {
    column("name", MyObj::name)
    column("value", MyObj::value)
}

我能否以某种方式包装它以在其他视图中重复使用相同的列?像

一样使用它
mytableview(items)

这样我就不会重复任何列。

创建一个工厂函数!

fun EventTarget.myobjtable(items: ObservableList<MyObj>, op: TableView<MyObj>.() -> Unit = {}) =
    tableview(items) {
        column("name", MyObj::name)
        column("value", MyObj::value)
        op()
    }

这应该与调用原始 tableview 函数一样工作,只是已经添加了列。