Привязка JavaFX в методе инициализации - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь создать привязку, чтобы предоставить кнопке способ отключать / включать себя, когда список содержит элементы или нет.Однако я не заставляю его работать.Это мой метод инициализации

private void initialize(){
    runButton.disableProperty().bind(Bindings.isEmpty(listView.getItems());
}

Добавление элементов в listView никак не влияет на состояние выключенного / включенного кнопки.

Если я поместил указанную выше строку кода в другой случайныйФункция, которая вызывается позже в программе, работает.

Я читал, что привязки могут быть сборщиком мусора, поэтому я также попытался создать поле привязки, чтобы затем применить его к disabledProperty.Это тоже не работает.

Есть идеи?

РЕДАКТИРОВАТЬ:

listView.setItems(observableFiles)

используется для заполнения списка

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Вы звоните listView.setItems() где-нибудь в коде?Если это так, это объяснит, почему это не работает, когда вы помещаете его в initialize, потому что вы привязываетесь к старому объекту списка, тогда как ListView использует новый объект списка.

Редактировать: Простовидел ваши правки, кажется, вы действительно это сделали.Попробуйте назвать привязки после того, как вы позвоните setItems.

0 голосов
/ 13 ноября 2018

В качестве другой альтернативы вы можете добавить прослушиватель к ListView itemsProperty и, если измененный список пуст, отключите триггер на вашем runButton.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...