Usually when dealing with an ObservableList the list always exists (or stays the same) but not it's elements. With the SimpleListProperty the ObservableList instance itself might change. You can still listen to list element changes with a SimpleListProperty.