У нас есть приложение SL 4, использующее архитектуру MVVM и довольно чистую привязку данных между объектами и элементами управления пользовательского интерфейса. Мы создали собственный атрибут ValidationAttribute, который мы используем для украшения классов нашего домена и обеспечения проверки на уровне поля на основе хранилища данных. Если мы используем эти пользовательские атрибуты проверки и вручную проверяем наши классы, используя класс Validator, например:
bool _isValid = Validator.TryValidateObject(this.DataContext, new ValidationContext(this.DataContext,null,null), results,true);
тогда используются пользовательские атрибуты проверки и все работает нормально.
Наша проблема заключается в том, что при простом вводе данных в текстовое поле, привязанное к полю, украшенному одним из этих атрибутов проверки, мы не видим немедленной обратной связи проверки (через красную рамку по умолчанию и стилизацию всплывающей подсказки панели инструментов).
Пример фрагмента XAML элемента управления, не проверяющего потерянный фокус:
<TextBox Text="{Binding AssetID,Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnDataErrors=true}"></TextBox>
Любые предложения о том, что мы пропускаем или что мы можем сделать, чтобы заставить SL проверять текстовые поля при потере фокуса и не ждать, пока будет выполнено сохранение на уровне страницы (в какой момент мы просто проверяем с помощью класса Validator)?