Чтобы отключить доступ к кнопке сохранения, когда все еще существуют ошибки проверки на стороне клиента, попробуйте это.
В вашем классе (код или модель представления) у вас будет нечто, предоставляющее текущий экземпляр объекта RIA, с которым вы работаете.
public SampleRIAEntity SelectedEntity { get; set; }
Используя этот метод расширения:
public static class RiaExtensions
{
public static bool CheckValidation<T>( this T riaEntity ) where T : Entity
{
ValidationContext vc = new ValidationContext( riaEntity, null, null);
ICollection<ValidationResult> validationResults = new List<ValidationResult>();
return ( Validator.TryValidateObject( riaEntity, vc, validationResults ) == true );
}
}
Вы можете предоставить свойство для использования с IsEnabled на кнопке Сохранить.
public bool HasErrors
{
get
{
return SelectedEntity.CheckValidation<SampleRIAEntity>();
}
}
После этого будут выполнены все правила проверки, доступные на стороне клиента. Сохранение все еще не может быть зафиксировано, если существуют серверные правила, которые не были выполнены.