private val invalidationListener = ChangeListener { _,_,_ -> _isDirtyProperty.set(_originalValueProperty.get() != value) } init { addListener(WeakChangeListener(invalidationListener)) }