ValidateValueCallback 委托

定义

表示用作回调的方法,用于验证依赖项属性的有效值。

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 

参数

value
Object

要验证的值。

返回值

Boolean

如果验证了值,则为 true;如果提交的值无效,则为 false

示例

以下示例包含此回调的实现,用于验证自定义依赖项属性的值范围。 在这种情况下,属性值需要枚举,并且验证可确保所提供的值计算结果为该枚举的成员。

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

注解

基于此委托的 DependencyProperty.Register 回调由某些签名和相关方法(例如 RegisterAttached 和只读等效项)使用。 如果希望每次设置其有效值时对属性值进行特定验证,则应使用采用 validateValueCallback 参数的签名。 然后,应实现此回调,以便执行建议值的实际验证。 如果提交到回调的值有效,则false回调应返回,否则应返回true。 值 false 将在尝试无效属性集的属性系统的特定部分中生成异常,因此应用程序应准备好处理这些异常。

验证回调存储在依赖属性标识符上,而不是依赖属性元数据。 验证回调无权访问设置属性的特定实例 DependencyObject ,并且只能影响通常接受的属性的值。 如果需要可基于特定实例更改属性值的回调,则应使用应用于属性的属性元数据的回调 CoerceValueCallbackPropertyChangedCallback 回调的组合。 还可以将这些回调应用于应影响属性值的相关属性。 有关详细信息,请参阅 Dependency 属性回调和验证

扩展方法

GetMethodInfo(Delegate)

获取指示指定委托表示的方法的对象。

适用于

另请参阅