In MVVM, we normally have a View (XAML + usually empty codebehind) as well as a ViewModel that is a separate class. Interaction between View and ViewModel takes place via data binding.
Assuming the View is just XAML and its codebehind is empty (which is usually the case), is there anything wrong with using the codebehind itself as the ViewModel and binding the View to properties of the codebehind? The separation of concerns is still there - you have a pure XAML view and a ViewModel which is the codebehind, and they communicate with each other only via data binding. The ViewModel can still be unit-tested.
This may sound like heresy, but I can't think of any use cases that would justify having to create separate classes for the ViewModel when the codebehind is in fact empty.