Выпуск двойных валидаторов уровня класса NHibernate
Я использую WPF, и у меня есть сущность, связанная с рядом элементов управления. Сущность украшена двумя валидаторами уровня класса следующим образом:
[ExampleValidator1, ExampleValidator2]
public class Entity
У сущности есть ряд полей, из которых не все отображаются всегда, в зависимости от выбора из поля со списком. Для каждого из этих выборов существует валидатор, если "тип" сущности не соответствует конкретному валидатору, который валидатор возвращает true, и, очевидно, правильный валидатор проверит фактические поля следующим образом:
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>
Очевидно, я получаю красивую красную коробку и подсказки, информирующие пользователей о требованиях к валидации.
Моя проблема заключается в том, что при изменении выделения в выпадающем списке красная подсветка сохраняется (становится маленьким красным квадратом, когда элемент управления скрыт). Может ли кто-нибудь направить меня правильно, пожалуйста!
1 ответ
Решается путем запуска OnPropertyChanged при изменении комбинированного списка, не идеальное решение, а его работоспособность.