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

検証する値。

戻り値

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 パラメーターを受け取るシグネチャを使用する必要があります。 次に、提案された値の実際の検証を実行できるように、このコールバックを実装する必要があります。 コールバックは、コールバックに送信された値が有効な場合は true を返し、それ以外の場合は false する必要があります。 false値は、無効なプロパティ セットが試行されたプロパティ システムの特定の部分で例外を生成するため、これらの例外を処理するようにアプリケーションを準備する必要があります。

検証コールバックは、依存関係プロパティのメタデータではなく、依存関係プロパティ識別子に格納されます。 検証コールバックは、プロパティが設定されている DependencyObject の特定のインスタンスへのアクセス権を持たないため、プロパティに対して受け入れられる値にのみ影響を与えることができます。 特定のインスタンスに基づいてプロパティ値を変更できるコールバックが必要な場合は、プロパティのプロパティ メタデータに適用される CoerceValueCallback コールバックと PropertyChangedCallback コールバックの組み合わせを使用する必要があります。 これらのコールバックは、プロパティの値に影響を与える必要がある関連プロパティにも適用できます。 詳細については、「 依存関係プロパティのコールバックと検証」を参照してください。

拡張メソッド

名前 説明
GetMethodInfo(Delegate)

指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。

適用対象

こちらもご覧ください