Android Data Binding не работает с делегацией класса Kotlin

Моя модель просмотра:

class MyVM( app: Application, private val observableImpl: BaseObservable, /* other colaborators*/ ) : AndroidViewModel(app), Observable by observableImpl { var currencyCode: String by Delegates.observable("") { _, _, newValue -> /* business logic methods */ notifyPropertyChanged(BR.currencyCode) } @Bindable get } 

Мой макет:

 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <data> <variable name="vm" type="path.to.MyVM" /> </data> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{vm.currencyCode}" app:layout_constraintEnd_toEndOf="parent" /> </android.support.constraint.ConstraintLayout> </layout> 

Когда currencyCode обновляется в модели данных, TextView не меняет текст автоматически.

Я попытался избавиться от наследования с AndroidViewModel и определил MyVM следующим образом:

 class MyVM(/* other colaborators*/) : BaseObservable() { } 

И это сработало. Проблема в том, что я не могу выбросить наследование из AndroidViewModel в моем производственном коде.

Однако есть обходной путь:

 val currencyCode = ObservableField<String>() 

Но мне не удобно использовать ObservableFields в моей ViewModel. Есть ли у вас какие-либо предложения?