Не удается удалить элемент ListView в tornadoFX - PullRequest
0 голосов
/ 26 мая 2018

Существует два списка: я могу перетащить элемент в другой, но перетаскиваемый элемент не будет удален из списка источников.

Я знаю, что код не является правильным способом обработки данных, однакоЯ думаю, что это должно работать, но это не так.

     ...
    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)
        }
    }

Спасибо.

1 Ответ

0 голосов
/ 26 мая 2018

Вы обдумываете это и вводите некоторые ловушки для себя в процессе:)

Вы создаете список modelItems как наблюдаемый список, поддерживаемый свойством ListView selectedItems.Таким образом, изменения в выбранных элементах в ListView будут отражены в вашем свойстве modelItems.

Когда вы вызываете selectionModel.clearSelection(), ваш список modelItems также пуст, поэтому вы звоните removeAll(anEmptyList).

Просто сделай listview.items.removeAll(listview.selectionModel.selectedItems).ListView обновит список выбранных элементов, когда элементы будут удалены из списка поддержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...