Предварительный выбор элементов в TreeView - PullRequest
0 голосов
/ 20 февраля 2020

Я реализую картограф категории. Есть 2 TreeViews. Оба содержат категории из разных источников. (Даже если они похожи на один и тот же источник)

Screenshot

Пользователь должен иметь возможность отображать ОДНУ категорию из нескольких видов дерева справа. Это сохраняется в файле конфигурации.

Однако, когда представление изначально загружено и пользователь нажимает на категорию слева, я хочу предварительно выбрать сопоставленные категории справа, загруженные из файла конфигурации.

Я видел, что я могу сделать это с ОДНЫМ выбором, но я не вижу возможности сделать это для нескольких.

Как я могу добиться этого?

Здесь запущена демонстрационная реализация ootb

1 Ответ

0 голосов
/ 21 февраля 2020

Я прошел через ваш суть, и мне показалось, что проблема заключалась в связывании выбора, верно? Я немного покопался и обнаружил, что связывание наблюдаемых списков нелегко. Я не думаю, что я даже видел решение, которое бы не просто добавляло слушателей для насмешки связывания. Однако завершение этого списка в SimpleListProperty, похоже, помогло. Вот демо:

class TestView : View() {
    // This mocks your target list in the ViewModel
    val targetList = SimpleListProperty(listOf<String>().asObservable())

    override val root = vbox(10) {
        // Both table views and tree views use an Observable Selection list
        listview(listOf("asefas", "asefasef", "asefasefasefase").asObservable()) {
            // Wrap in SimpleListProperty, then bind
            targetList.bind(SimpleListProperty(selectionModel.selectedItems))
            selectionModel.selectionMode = SelectionMode.MULTIPLE
        }

        setPrefSize(300.0, 300.0)
    }

    init {
        // Target list now reflects changes made to selection model
        targetList.addListener { _, _, change ->
            println("Selections changed to: $change")
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...