Вы можете просто зарегистрировать событие Click в codebehind где-нибудь в загруженном или конструкторе, например:
MyButton.Click += Button_Clicked
, а когда вы не хотите выполнять, просто отмените его регистрацию
MyButton.Click -= Button_Clicked
Или используя Команды просто возвращают false из метода CanExecute. См. Команда здесь
Или Просто используйте флаг в событии Click, чтобы вернуться, если условие выполнено