Вообще, в MVVM есть байндинг. Если бы ты так пошел, скорее бы всего вопроса то и не было
Ну кстати, биндинг походу тоже решает мою проблему.
У меня правда чуть иной путь в целом. Биндинга у меня сознательно нет.
У меня в каждой VM есть одна liveData, которая содержит текущий стейт вьюхи. Вьюха на эту liveData подписана. Если чего происходит, vm пуллит в эту liveData новый стейт, и вьюха меняется. Получается, что у вьюхи есть только один способ изменить состояние, через эту вот liveData.
Биндинг мне раскурочит всё.
Hmm, есть над чем подумать мне.