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;
    }
});
Другие вопросы по тегам