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) |
Возвращает объект, представляющий метод, представленный указанным делегатом. |