Не бывает абстрактно правильной или неправильной валидации. Все зависит от вашей бизнес-задачи.
На пустое значение можно проверить так:
if (textbox1.Text == string.Empty)
UPD:
В mvvm у вас есть ViewModel, которая привязана ко View: контролы для отображения привязаны к свойствам VM, контролы для управления привязаны к командам VM. Соответственно, когда юзер нажимает на кнопку, из вашего обработчика команды вы имеете доступ к свойстам модели, а значит можете их провалидировать.
UPD2:
Ок, тогда так: во-первых, EF в контексте вашей задачи не имеет значения. Такие вещи как [Required] не завязаны на EF, но EF использует их и не дает работать с данными, которые не проходят валидацию. Конечно, вы можете попробовать залить данные через EF, получить исключение валидации и обработать его, но это грязный ход.
Итак, вы создали новый Bank , установили его моделью для диалогового окна с текстбоксами и привязали к ним свойства Bank. Затем, при нажатии на ОК вы сделали биндингам Update (на мой взгляд - это лишнее, проще в данном случае сделать обычную привязку) и данные из текстбоксов попали в модель. Теперь вам следует, собственно, провалидировать модель:
bool ValidateModel()
{
var validationContext = new ValidationContext(Bank, null, null);
var validationResults = new List<ValidationResult>();
Validator.TryValidateObject(Bank, validationContext, validationResults);
if (validationResults.Any())
{
foreach (var validationResult in validationResults)
{
ShowError(validationResult.MemberNames.First(), validationResult.ErrorMessage);
}
return false;
}
else
{
return true;
}
}