Ich habe eine Situation, in der ich ein BooleanProperty
an den nicht-leeren Zustand eines ObservableList
gebunden in ein ObjectProperty
binden möchte.
Hier ist eine grundlegende Zusammenfassung des Verhaltens, nach dem ich suche:
%Vor% Ich möchte die Builder in der Klasse Bindings
verwenden, anstatt eine Kette von benutzerdefinierten Bindungen zu implementieren.
Die Bindings.select(...)
-Methode macht theoretisch das, was ich will, außer dass es keine Bindings.selectObservableCollection(...)
gibt und der Rückgabewert von der generischen select(...)
und die Übergabe an Bindings.isEmpty(...)
nicht funktioniert. Das heißt, das Ergebnis davon:
verursacht ein ClassCastException
:
Ist dieser Anwendungsfall nur mit der Bindings
API möglich?
Basierend auf der Antwort von @fabian, hier ist die Lösung, die funktioniert:
%Vor%Ich sehe keine Möglichkeit, dies nur mit der Bindungs-API zu tun. ObservableList hat keine Eigenschaft leer, daher können Sie
nicht verwenden %Vor%und
%Vor%funktioniert nicht, da es nur aktualisiert wird, wenn sich die Liste ändert, aber nicht, wenn sich der Inhalt ändert (d. h. die dritte Assertion schlägt fehl).
Aber die benutzerdefinierte Kette von Bindungen, die Sie erstellen müssen, ist sehr einfach:
%Vor%Tags und Links java javafx-2 binding javafx observable