JavaFX: привязать отключить свойство кнопки к размеру ObservableList
У меня есть TableView
и я хотел бы связать свойство отключения Button
с размером ObservableList
модель стола. В частности, я хотел бы отключить кнопку, когда размер ObservableList
больше 2.
Как я могу этого достичь?
Чтобы отключить другую кнопку, когда в таблице не выбрано ни одной строки
editRoadButton.disableProperty().bind(roadsTable.getSelectionModel().selectedItemProperty().isNull());
Есть ли подобный способ?
2 ответа
Решение
В классе Bindings есть фабричные методы для полезных привязок. В вашем случае фи:
button.disableProperty().bind(Bindings.size(items).greaterThan(2));
Вы можете сделать что-то подобное
ListProperty<String> list = new SimpleListProperty<>(FXCollections.<String>emptyObservableList());
Button foo = new Button();
foo.disableProperty().bind(new BooleanBinding() {
{
bind(list);
}
@Override
protected boolean computeValue() {
return list.size() > 2;
}
});