Compartilhar via


UpdateSourceExceptionFilterCallback Delegar

Definição

Representa o método que manipula exceções geradas durante a atualização do valor de origem da associação. Isso deve ser usado com o 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 

Parâmetros

bindExpression
Object

O objeto com a exceção.

exception
Exception

A exceção encontrada.

Valor Retornado

Object

Um objeto que costuma ser um dos seguintes:

Valor Descrição
null Para ignorar quaisquer exceções. O comportamento padrão (se não houver um UpdateSourceExceptionFilterCallback) é criar um ValidationError com a exceção e adicioná-lo à coleção Errors do elemento associado.
Qualquer objeto Para criar um objeto ValidationError com o ErrorContent definido como esse objeto.

O objeto ValidationError é adicionado à coleção Errors do elemento associado.

Um objeto ValidationError Para definir o objeto BindingExpression ou MultiBindingExpression como o BindingInError. O objeto ValidationError é adicionado à coleção Errors do elemento associado.

Exemplos

A Text propriedade a seguir TextBox é associada a dados a uma propriedade Age3 de origem do tipo int. As ExceptionValidationRule verificações de exceções geradas durante a atualização da propriedade de origem (como quando o usuário insere um valor que não pode ser convertido em um inteiro).

<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>

Você tem a opção de fornecer lógica personalizada para lidar com essas exceções. O exemplo a seguir mostra como usar a UpdateSourceExceptionFilter propriedade para definir um UpdateSourceExceptionFilterCallback:


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

Veja a seguir um exemplo de implementação de um UpdateSourceExceptionFilterCallback:

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

Para obter o exemplo completo, consulte Exemplo de Validação de Associação.

Comentários

Se você tiver associado o ExceptionValidationRule objeto, terá a opção de usar a UpdateSourceExceptionFilter propriedade para definir esse retorno de chamada para fornecer lógica personalizada para lidar com Binding as exceções. Esse retorno de chamada é invocado sempre que qualquer exceção é encontrada quando o mecanismo de associação atualiza o valor de origem da associação.

Se um UpdateSourceExceptionFilter não for especificado no Bindingmecanismo de associação, o mecanismo de associação criará um ValidationError com a exceção e o Validation.Errors adicionará à coleção do elemento associado.

Métodos de Extensão

GetMethodInfo(Delegate)

Obtém um objeto que representa o método representado pelo delegado especificado.

Aplica-se a

Confira também