Если элемент выбран в ListView JavaFx - PullRequest
0 голосов
/ 24 октября 2018

Если у меня есть список и кнопка.И я хочу, чтобы эта кнопка была отключена до тех пор, пока не будет выбран элемент из этого списка, какой метод лучше всего использовать?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

ListView имеет свойство с именем selectionModel, которое содержит объект MultipleSelectionModel.Эта модель выбора имеет свойства / списки, которые представляют, какие элементы выбраны, если таковые имеются.У этой модели выбора есть два режима:

  1. SINGLE: одновременно можно выбрать только один элемент.
  2. MULTIPLE: можно выбрать любое количество элементов ввремя.

Может быть, какой режим выбора вы используете, но я не уверен.Для одиночного выбора я бы наблюдал свойство selectedItem или selectedIndex.Для множественного выбора я бы наблюдал selectedItems или selectedIndices ObservableList.( Примечание: хотя я не уверен, я ожидаю, что любой метод будет работать независимо от режима выбора )

// single selection mode
button.disableProperty()
        .bind(listView.getSelectionModel().selectedItemProperty().isNull());

// multiple selection mode
button.disableProperty()
        .bind(Bindings.isEmpty(listView.getSelectionModel().getSelectedItems()));

В первом варианте используется isNull метод свойства selectedItem.Метод возвращает BooleanBinding, который связывает свойство disable Button.

. Второй параметр использует Bindings.isEmpty, который создает BooleanBinding, который будет true когда ObservableList пусто.Как и в первом варианте, свойство disable привязано к этому BooleanBinding.

0 голосов
/ 24 октября 2018

Используйте isNull для создания BooleanBinding на основе свойства selectedItem модели выбора.Используйте это, чтобы связать свойство disable кнопки:

button.disableProperty().bind(listView.getSelectionModel().selectedItemProperty().isNull());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...