2009-09-28 1 views
0

Я использую WPF, и у меня есть Entity, связанная с серией элементов управления. Объект украшен два валидаторов уровня класса следующим образом:Двойной валидатор уровня уровня NHibernate Проблема

[ExampleValidator1, ExampleValidator2] 
public class Entity 

Субъект имеет ряд полей из которых не все всегда выводимых, в зависимости от выбора из выпадающего списка. Валидатора существует для каждого из этих выборов, если «тип» лица не соответствует конкретному валидатора, что валидатор возвращает истину, и, очевидно, правильный валидатор будет проверять фактические поля следующим образом:

public bool IsValid(object value, IConstraintValidatorContext constraintValidatorContext) 
    { 

     constraintValidatorContext.DisableDefaultError(); 
     var allPropertiesValid = true; 
     var entity= (Entity)value; 

     if (supplier.ParticularEntityType) 
     { 
      return true; 
     } 



     if (String.IsNullOrEmpty(entity.Name) || entity.Name.Length > 50) 
     { 
      constraintValidatorContext.AddInvalid<Entity, string>("must be 50 or shorter and not empty", x => x.Name); 
      allPropertiesValid = false; 
     } 

и XAML заключается в следующем:

   <TextBox Grid.Row="0" Grid.Column="3"> 
        <TextBox.Text> 
         <Binding Path="Entity.Name" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True"> 
         </Binding> 
        </TextBox.Text> 
       </TextBox> 

Очевидно, что я получаю красивую красноватую коробку и подсказки для инструментов, информирующие пользователей о требованиях валидации.

Моя проблема заключается в том, что при изменении выделения в поле со списком красная подсветка сохраняется (становится небольшим красным квадратом, когда элемент управления скрыт). Может ли кто-нибудь направить меня правильно, пожалуйста!

ответ

0

Устранено путем обжига OnPropertyChanged, когда выпадающее поле изменено, а не идеальное решение, но его работоспособность.