UpdateSourceExceptionFilterCallback Delegar
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |