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