2016-12-20 3 views
0

Я применил MVVM в своем приложении, чтобы реализовать правила проверки для некоторых страниц, следуя this tutorial и this sample, поэтому проверки работают исправно и очень творчески, но у меня есть одна проблема при проверке текста текстового поля в следующий сценарий:Проверка подлинности в текстовом поле работает только после изменения текста

После реализации Required иЛИ Regular Expression или любого другого правила проверки данных, она не будет работать, если некоторые изменения не произойдут с текстом Textbox (т.е. пользователь вводит текст и удалить его, будет инициировать проверки и проверки ТРЕБУЕМОГА ошибка будет там)

Это означает, что все TextBoxes на странице будут действительны, даже если они прокомментированы Required, и они не включают в себя какой-либо текст (в случае возникновения каких-либо изменений не произошло их текст еще)

ответ

1

Это означает, что все TextBoxes на странице будет действительного

Согласно испытаниям образцов на моей стороне, если не вызывать следующий ValidateProperties() метод, который является для проверки всех свойств иначе вы не получили все подтверждены.

public bool ValidateProperties() 
    { 
     var propertiesWithChangedErrors = new List<string>(); 

     // Get all the properties decorated with the ValidationAttribute attribute. 
     var propertiesToValidate = _entityToValidate.GetType() 
                .GetRuntimeProperties() 
                .Where(c => c.GetCustomAttributes(typeof(ValidationAttribute)).Any()); 

     ... 
    } 

ViewModel наследует от ValidatableBindableBase класса, который получит Errors собственность. Каждый TextBox управляет своим собственным Errors. Ошибка для одного TextBox будет обновляться после изменения этого свойства, которое не повлияет на другие TextBox, так как их свойства не изменяются.

Текст обновлен привести первый TextBox подтверждено, но не второе:

enter image description here

ПРОВЕРЯЕМЫЕ все:

enter image description here

Смежные вопросы