ValidateValueCallback Delegar

Definição

Representa um método usado como callback que valida o valor efetivo de uma propriedade de dependência.

public delegate bool ValidateValueCallback(System::Object ^ value);
public delegate bool ValidateValueCallback(object value);
type ValidateValueCallback = delegate of obj -> bool
Public Delegate Function ValidateValueCallback(value As Object) As Boolean 

Parâmetros

value
Object

O valor a validar.

Devolver Valor

true se o valor foi validado; false se o valor submetido fosse inválido.

Exemplos

O exemplo seguinte inclui uma implementação deste callback para validar um intervalo de valores para uma propriedade de dependência personalizada. Neste caso, o valor da propriedade espera uma enumeração, e a validação assegura que o valor fornecido seja avaliado para um membro dessa enumeração.

private static bool ShirtValidateCallback(object value)
{
    ShirtTypes sh = (ShirtTypes) value;
    return (sh==ShirtTypes.None || sh == ShirtTypes.Bowling || sh == ShirtTypes.Dress || sh == ShirtTypes.Rugby || sh == ShirtTypes.Tee);
}
Private Shared Function ShirtValidateCallback(ByVal value As Object) As Boolean
    Dim sh As ShirtTypes = CType(value, ShirtTypes)
    Return (sh=ShirtTypes.None OrElse sh = ShirtTypes.Bowling OrElse sh = ShirtTypes.Dress OrElse sh = ShirtTypes.Rugby OrElse sh = ShirtTypes.Tee)

End Function

Observações

Callbacks baseados neste delegado são usados por certas assinaturas de DependencyProperty.Register e métodos relacionados, como RegisterAttached e equivalentes de apenas leitura. Deves usar assinaturas que tomem o validateValueCallback parâmetro se quiseres validação específica do valor da propriedade cada vez que o seu valor efetivo é definido. Deves então implementar este callback de modo a que execute a validação efetiva do valor proposto. O callback deve ser retornado true se o valor submetido ao callback for válido, e false caso contrário. Um false valor produzirá uma exceção na parte específica do sistema de propriedades onde o conjunto de propriedades inválidas foi tentado, por isso a sua candidatura deve estar preparada para lidar com essas exceções.

Os callbacks de validação são armazenados em identificadores de propriedades de dependência, em vez de metadados de propriedades de dependência. O seu callback de validação não tem acesso a uma instância específica de a DependencyObject onde a propriedade está definida, e só pode influenciar quais os valores aceites para a propriedade em geral. Se precisar de um callback que possa alterar os valores das propriedades com base numa instância específica, deve usar uma combinação de callbacks e CoerceValueCallbackPropertyChangedCallback aplicados aos metadados da propriedade. Pode também aplicar estas referências a propriedades relacionadas que deverão influenciar o valor da sua propriedade. Para detalhes, veja Retornos de Propriedades de Dependência e Validação.

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