ListView
имеет свойство с именем selectionModel
, которое содержит объект MultipleSelectionModel
.Эта модель выбора имеет свойства / списки, которые представляют, какие элементы выбраны, если таковые имеются.У этой модели выбора есть два режима:
SINGLE
: одновременно можно выбрать только один элемент. 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
.