должно быть наоборот. Вьюмодель излучает данные, а биндинг на них подписывается. Вьмодель о вьюхе знать ничего не должна
В общем случае ты сетаешь вьюмодель в свою вьюху во фрагменте типа
binding.wm = viewModel
binding.lifecycleOwner = viewLifecycleOwner
в разделе <data> xml у тебя соответственно чтото типа
<data>
<variable
name="wm"
type="lalala.MyViewModel" />
</data>
и в xml ты можешь в кнопке сделать
android:onClick="@{()->wm.buttonClick()}"
сответственно в твоей вьюмодели есть buttonClick(), который этот клик и будет обрабатывать.
А из вьюмодели если ты хочешь например текст на кнопку передать, то делаешь во вьюмодели LiveData в нее постишь данные, а в xml кнопки
android:text="@{wm.text}"
короче я всё тут поперупутал :) и сделал где как ... ладно спасибо :) сделаю пока что бы работало , потом уже буду по тиху старый код переделывать под MVVM , уж больше много сейчас перелапачивать придётся