无法删除龙卷风FX中的列表视图项目



有两个列表视图,我可以将一个项目拖到另一个项目中,但拖动的项目不会从源列表中删除。

我知道代码不是处理数据的正确方法,但我认为它应该有效,但它就是不工作。

...
setOnDragDone {event ->
removeSelected(event.gestureSource)
}
...
fun  removeSelected(gestureTarget: Any?) {
var listview = gestureTarget as ListView<String>
val modelItems = FXCollections.observableList(listview.selectionModel.selectedItems)
if (modelItems != null) {
listview.selectionModel.clearSelection()
listview.items.removeAll(modelItems)
}
}

谢谢。

你想太多了,一路上给自己引入了一些陷阱:)

modelItems列表创建为可观察列表,由 ListView 的 selectedItems 属性提供支持。因此,对 ListView 中所选项的更改将反映在modelItems属性中。

当您呼叫selectionModel.clearSelection()时,您的modelItems列表也是空的,因此您正在呼叫removeAll(anEmptyList)

只是做listview.items.removeAll(listview.selectionModel.selectedItems).从支持列表中删除项目时,ListView 将更新所选项目列表。

最新更新