UpdateSourceExceptionFilterCallback Delegar

Definição

Representa o método que lida com exceções lançadas durante a atualização do valor da fonte de ligação. Isto 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 exceção.

exception
Exception

A exceção encontrada.

Devolver Valor

Um objeto que é tipicamente um dos seguintes:

Valor Descrição
null Ignorar quaisquer exceções. O comportamento padrão (se não UpdateSourceExceptionFilterCallbackexistir ) é criar um ValidationError com a exceção e adicioná-lo à Errors coleção do elemento vinculado.
Qualquer objeto Para criar um ValidationError objeto com o ErrorContent conjunto desse objeto.

O ValidationError objeto é adicionado à Errors recolha do elemento ligado.

Um ValidationError objeto Para definir o BindingExpression objeto ou MultiBindingExpression como o BindingInError. O ValidationError objeto é adicionado à Errors recolha do elemento ligado.

Exemplos

A Text propriedade do seguinte TextBox é ligada a dados a uma propriedade Age3 de origem que é do tipo int. Verifica-se ExceptionValidationRule exceções que são lançadas durante a atualização da propriedade de origem (como quando o utilizador insere um valor que não pode ser convertido em 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>

Tens a opção de fornecer lógica personalizada para lidar com essas exceções. O exemplo seguinte 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();

Segue-se um exemplo de implementação de um UpdateSourceExceptionFilterCallback:

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

Para a amostra completa, veja Amostra de Validação de Ligação.

Observações

Se tiver associado o ExceptionValidationRule com o seu Binding objeto, tem a opção de usar a UpdateSourceExceptionFilter propriedade para definir este callback e fornecer lógica personalizada para tratar as exceções. Este callback é invocado sempre que é encontrada qualquer exceção quando o motor de ligação atualiza o valor da fonte de ligação.

Se an UpdateSourceExceptionFilter não for especificado em , Bindingo motor de ligação cria a ValidationError com exceção e adiciona-o à Validation.Errors coleção do elemento ligado.

Métodos da Extensão

Name Description
GetMethodInfo(Delegate)

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

Aplica-se a

Ver também