Yes, you can.
But think of the scenarios where JavaFX properties do not fit or bring too much complexity. For example, using JavaFX properties with JPA forces you to implement lazy JavaFX properties or use JavaFX properties to store the bean values. This in turn could lead to some other complications e.g. need for synchronization or serialization.
Some models will not allow dependencies on JavaFX classes.
Moreover some models already support JavaBean properties (for example Swing application models), they can be used as is.
We do not want to introduce any new API to the user. There are no suitable classes/interfaces in the core JavaFX API supporting both JavaBeanProperty interface and typed ObservableValue (e.g. ObservableBooleanValue ).
If you want to use the properties in an expression consider using the BooleanBinding.createXXXBinding() method family ( createBooleanBinding() , createDoubleBinding() etc.). They are more suitable for the complex expressions anyway.
As another alternative it is possible to convert the returned property to a typed binding:
JavaBeanProperty<Boolean> generic = NestedJavaBeanProperties.selectReadOnly(bean, property); BooleanBinding typed = Bindings.createBooleanBinding(() -> generic.getValue(), generic);
And of course, always dispose the properties after use to avoid dangling references in the underlying JavaBeans.
There is none.
EasyBind project (starting from version 1.0.4) provides support for nested JavaFX properties.