class LVTestView : View("LVTest") { val items = mutableListOf( "java", "kotlin", "python" ); // alt: can't use setValue //val myitemsProperty : ReadOnlyListProperty = // SimpleListProperty( items.observable() ) val myitemsProperty : ListProperty = SimpleListProperty( items.observable() ) var lv : ListView by singleAssign() override val root = vbox { lv = listview { itemsProperty().bind( myitemsProperty ) } button("Complete Replacement") { setOnAction { evt -> myitemsProperty.setValue( listOf( "one", "two", "three" ).observable() ) } } spacing = 4.0 padding = Insets(10.0) } } class LVTestApp : App(LVTestView::class) { override fun createPrimaryScene(view: UIComponent) = Scene(view.root, 480.0, 320.0) }