Набор свойства не запускается, когда ValidationRule возвращает false - PullRequest
0 голосов
/ 22 июня 2011

У меня есть ValidationRule для текстового поля.Когда ValidationResult возвращает true, запускается набор для свойства, с которым связано текстовое поле.

Когда ValidationResult возвращает false, набор не запускается.

Любые указатели относительно того, почемуэто не стрельба, и как ее решить, очень признателен.

Спасибо

Джо

Вот XAML текстового поля:

<Binding Path="CorrectEntry" UpdateSourceTrigger="PropertyChanged"  NotifyOnValidationError="True" >
    <Binding.ValidationRules>
        <localValidation:CorrectEntryValidationRule x:Name="validator" ValidatesOnTargetUpdated="True">                                                   <localValidation:CorrectEntryValidationRule.RangeContainer>
                <localValidation:CorrectEntryRangeContainer
                    DataContext="{Binding 
                    Source={StaticResource DataContextBridge}, 
                    Path=DataContext}" 
                    Min="{Binding Lower}"
                    Max="{Binding Upper}"
                    />
                </localValidation:CorrectEntryValidationRule.RangeContainer>
            </localValidation:CorrectEntryValidationRule>
    </Binding.ValidationRules>
</Binding>

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

См. Документацию для правила валидации. это свойство не устанавливается, когда правило валидации возвращает false.

Вы не должны использовать Правило валидации, если хотите, чтобы ваш Пропуск был установлен. Вы должны наследовать свой класс от IDataErrorInfo. И реализовать 2 метода из этого интерфейса.

1 голос
/ 22 июня 2011

Это нормальное и обычно требуемое поведение, если ваши данные недействительны, вы не хотите, чтобы они сохранялись в вашей модели.

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

...