Я использую свойства обертки и IDataErrorInfo в моей модели для таких случаев. если у вас есть целочисленное свойство и wpf не может преобразовать ввод в целое число - вы получите исключение BindingErrorException, и оно никогда не попадет в модель представления.
public string MyQuantity {get ... set ...}
затем вы можете легко использовать свой метод CanSaveCommandExecute, чтобы проверить свойство Error IDataErroInfo в вашей модели представления. Преимущество этого в том, что у вас есть вся информация и контроль в вашей модели представления.