I wonder if that would break the MVVM pattern and, if so, why and why is it so bad?
<Button Click="Button_Click" />
private void Button_Click(object sender, RoutedEventArgs e)
public void CallMethod()
// Some code
Nope, this is perfectly fine.
It's the View's job to handle user input and interact with the ViewModel. A button click event-handler, which calls a method of the ViewModel in response, falls quite cleanly into this role.
What you have posted is clean, readable, efficient, maintainable, and fully in the spirit of the MVVM design pattern.