次の方法で共有


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

拡張メソッド

GetMethodInfo(Delegate)

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

適用対象

こちらもご覧ください