Поделиться через


Binding.UpdateSourceExceptionFilter Свойство

Определение

Получает или задает обработчик, который можно использовать для предоставления пользовательской логики для обработки исключений, которые механизм привязки находит при обновлении значения источника привязки. Это применимо, только если имеется правило ExceptionValidationRule, связанное с привязкой.

public:
 property System::Windows::Data::UpdateSourceExceptionFilterCallback ^ UpdateSourceExceptionFilter { System::Windows::Data::UpdateSourceExceptionFilterCallback ^ get(); void set(System::Windows::Data::UpdateSourceExceptionFilterCallback ^ value); };
public System.Windows.Data.UpdateSourceExceptionFilterCallback UpdateSourceExceptionFilter { get; set; }
member this.UpdateSourceExceptionFilter : System.Windows.Data.UpdateSourceExceptionFilterCallback with get, set
Public Property UpdateSourceExceptionFilter As UpdateSourceExceptionFilterCallback

Значение свойства

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

Примеры

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

<TextBox Name="textBox3" Width="50" FontSize="15"
         Grid.Row="4" Grid.Column="1" Margin="2"
         Validation.ErrorTemplate="{StaticResource validationTemplate}"
         Style="{StaticResource textBoxInError}">
  <TextBox.Text>
    <Binding Path="Age3" Source="{StaticResource ods}"
             UpdateSourceTrigger="PropertyChanged">
      <Binding.ValidationRules>
        <ExceptionValidationRule/>
      </Binding.ValidationRules>
    </Binding>
  </TextBox.Text>
</TextBox>

Вы можете предоставить пользовательскую логику для обработки этих исключений. В следующем примере показано, как использовать UpdateSourceExceptionFilter свойство для задания UpdateSourceExceptionFilterCallback.


BindingExpression myBindingExpression = textBox3.GetBindingExpression(TextBox.TextProperty);
Binding myBinding = myBindingExpression.ParentBinding;
myBinding.UpdateSourceExceptionFilter = new UpdateSourceExceptionFilterCallback(ReturnExceptionHandler);
myBindingExpression.UpdateSource();

Ниже приведен пример реализации UpdateSourceExceptionFilterCallback.

object ReturnExceptionHandler(object bindingExpression, Exception exception)
{
    return "This is from the UpdateSourceExceptionFilterCallBack.";
}

Также UpdateSourceExceptionFilterCallback может возвращать null, само исключение или ValidationError. Для получения дополнительной информации см. UpdateSourceExceptionFilterCallback.

Полный пример см. в разделе Пример проверки привязки.

Комментарии

ExceptionValidationRule— это встроенное правило проверки, которое проверяет наличие исключений, вызванных при обновлении свойства источника привязки. Если вы связали ExceptionValidationRule с Binding объектом , можно использовать это свойство, чтобы задать обработчик для предоставления пользовательской логики для обработки этих исключений. Если для элемента Binding не указано UpdateSourceExceptionFilter, механизм привязки создает ValidationError с исключением и добавляет его в коллекцию Validation.Errors связанного элемента.

Применяется к