У меня есть кнопка, ограниченная значением Validation.HasError текстового блока. Текстовый блок имеет правило проверки, которое проверяет значение, введенное пользователем. Цель привязки заключается в том, что кнопка должна быть отключена, если пользователь вводит неверные данные.Связывание происходит до проверки
Проблема в том, что ValidationRule выполняет ПОСЛЕ привязки. Поэтому, когда пользователь вводит неправильное значение, привязка проверяет свойство HasError текстового блока, что является FALSE, поэтому кнопка включена. И тогда выполняется validationrule. Это приводит к ситуации, когда тексблоки заблокированы, и кнопка включена.
Как я могу указать, какая (привязка и проверка) выполняется в первую очередь?
Вот XAML:
<MultiBinding Converter="{StaticResource ButtonVisibilityConverter}" UpdateSourceTrigger="PropertyChanged" Mode="OneWay" >
<Binding ElementName="integerInput" Path="HasValidationError"/>
<Binding ElementName="doubleInput" Path="HasValidationError"/>
</MultiBinding>
</Button.IsEnabled>
Я уверен, что это не так. Элемент управления текстовым блоком, о котором я говорю, представляет собой настраиваемый счетчик (текстовое поле с двумя +/- кнопками). Содержимое счетчика привязано к свойству в viewmodel. Каждый раз, когда мы нажимаем кнопку + или -, выполняется команда и увеличивает или уменьшает значение в текстовом поле.