UpdateSourceExceptionFilterCallback Delegar
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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. |