Compartilhar via


Binding.UpdateSourceExceptionFilter Propriedade

Definição

Obtém ou define um manipulador que você pode usar para fornecer lógica personalizada para lidar com exceções que o mecanismo de associação encontra durante a atualização do valor de origem da associação. Isso será aplicável somente se você tiver associado um ExceptionValidationRule à associação.

public:
 property System::Windows::Data::UpdateSourceExceptionFilterCallback ^ UpdateSourceExceptionFilter { System::Windows::Data::UpdateSourceExceptionFilterCallback ^ get(); void set(System::Windows::Data::UpdateSourceExceptionFilterCallback ^ value); };
public System.Windows.Data.UpdateSourceExceptionFilterCallback UpdateSourceExceptionFilter { get; set; }
member this.UpdateSourceExceptionFilter : System.Windows.Data.UpdateSourceExceptionFilterCallback with get, set
Public Property UpdateSourceExceptionFilter As UpdateSourceExceptionFilterCallback

Valor da propriedade

Um método que fornece lógica personalizada para lidar com exceções que o mecanismo de associação encontra durante a atualização do valor de origem da associação.

Exemplos

A Text propriedade a seguir TextBox é associada a dados a uma propriedade Age3 de origem do tipo int. O ExceptionValidationRule verifica se há 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ê pode 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.";
}

O UpdateSourceExceptionFilterCallback também pode retornar null, a exceção em si ou um ValidationError. Para obter mais informações, consulte UpdateSourceExceptionFilterCallback.

Para obter o exemplo completo, consulte Exemplo de validação de associação.

Comentários

O ExceptionValidationRule é uma regra de validação interna que verifica se há exceções geradas durante a atualização da propriedade de origem da associação. Se você tiver associado o ExceptionValidationRule ao seu Binding objeto, poderá usar essa propriedade para definir um manipulador para fornecer lógica personalizada para lidar com essas exceções. Se um UpdateSourceExceptionFilter não for especificado no Binding, o mecanismo de associação criará um ValidationError com a exceção e o Validation.Errors adicionará à coleção do elemento associado.

Aplica-se a