UpdateSourceExceptionFilterCallback Делегат

Определение

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

public delegate System::Object ^ UpdateSourceExceptionFilterCallback(System::Object ^ bindExpression, Exception ^ exception);
public delegate object UpdateSourceExceptionFilterCallback(object bindExpression, Exception exception);
type UpdateSourceExceptionFilterCallback = delegate of obj * Exception -> obj
Public Delegate Function UpdateSourceExceptionFilterCallback(bindExpression As Object, exception As Exception) As Object 

Параметры

bindExpression
Object

Объект с исключением.

exception
Exception

Возникло исключение.

Возвращаемое значение

Object

Объект, который обычно является одним из следующих.

Значение Описание
null Для игнорирования любых исключений. Поведение по умолчанию (если нет UpdateSourceExceptionFilterCallback) — создать ValidationError с исключением и добавить его в коллекцию Errors привязанного элемента.
Любой объект Для создания объекта ValidationError с установленным для этого объекта ErrorContent.

ValidationError объект добавлен в коллекцию Errors привязанного элемента.

Объект ValidationError Чтобы установить объект BindingExpression или MultiBindingExpression как BindingInError. ValidationError объект добавлен в коллекцию Errors привязанного элемента.

Примеры

Свойство Text следующего TextBox свойства привязано к свойству источника 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.";
}

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

Комментарии

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

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

Методы расширения

GetMethodInfo(Delegate)

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

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

См. также раздел