First start Empty Views Activity:

In \app\build.gradle.kts I have added:

buildFeatures {
	dataBinding = true
}
Sync gradle files.

Add Kotlin class "ButtonViewModel":

package com.milosev.mymvvmexample

import androidx.lifecycle.ViewModel

class ButtonViewModel : ViewModel() {
    fun onButtonClick() {
        println("Hello, Kotlin!")
    }
}
In activity_main.xml add layout and data so it looks like:
<?xml version="1.0" encoding="utf-8"?>

<layout xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <data>
        <variable
            name="viewModel"
            type="com.milosev.mymvvmexample.ButtonViewModel" />
    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="@{() -> viewModel.onButtonClick()}"
            android:text="Button"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>

</layout>
MainActivity.kt:
package com.milosev.mymvvmexample

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.ViewModelProvider
import com.milosev.mymvvmexample.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        val viewModel = ViewModelProvider(this)[ButtonViewModel::class.java]
        binding.viewModel = viewModel
        binding.lifecycleOwner = this
    }
}
Example download from here.