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


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

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

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

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

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

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

ValidationError Объект Чтобы задать или MultiBindingExpression объект BindingExpression в качестве 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.";
}

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

Комментарии

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

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

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

Имя Описание
GetMethodInfo(Delegate)

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

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

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