JavaFX:将按钮的disable属性绑定到ObservableList大小

时间:2014-06-16 14:39:19

标签: tableview javafx-8 observablelist

我有TableView,我想将Button的禁用属性与表格的ObservableList模型的大小绑定。特别是,当ObservableList的大小大于2时,我想禁用该按钮。

我怎样才能实现这一目标?

要在表中使用

表中未选择任何行时禁用其他按钮
editRoadButton.disableProperty().bind(roadsTable.getSelectionModel().selectedItemProperty().isNull());

有类似的方法吗?

2 个答案:

答案 0 :(得分:18)

Bindings类中有有用绑定的工厂方法。在你的情况下f.i。:

button.disableProperty().bind(Bindings.size(items).greaterThan(2));

答案 1 :(得分: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;
    }
});