情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DependencyProperty.UnsetValue フィールド

2013/12/12

プロパティは存在するが、その値がプロパティ システムによって設定されていないことを示すために、プロパティ システムが null の代わりに使用する静的な値を指定します。

Namespace:  System.Windows
アセンブリ:  System.Windows (System.Windows.dll 内)

public static readonly Object UnsetValue

フィールド値

型: System.Object
未設定の値の sentinel 値。

UnsetValue は、プロパティ システムが要求された DependencyProperty 値を判定できない場合に使用される sentinel 値です。null はプロパティ値や (頻繁に使用される) 既定値として有効である可能性があるため、null の代わりに UnsetValue が使用されます。GetValue から UnsetValue が返されることはありません。DependencyObject の依存関係プロパティに対して GetValue を呼び出した場合、次のいずれかが適用されます。

  • 依存関係プロパティには設定された既定値があり、その値が返されます。

  • プロパティ システムによってその他の値が設定されており、既定値は適切ではなくなっています。詳細については、「Windows Phone の依存関係プロパティ」を参照してください。

要求されたプロパティがローカルに設定されていない場合、ReadLocalValueUnsetValue を返します。

重要: 重要:

依存関係プロパティを UnsetValue の特定の既定値に登録しないでください。これを行うと、プロパティのコンシューマーが混乱し、プロパティ システム内で予期しない結果が生じます。

次の例では、ReadLocalValue を使用して既存のローカル値をチェックします。UnsetValue が返されず、ローカル値が存在する場合には、ClearValue の呼び出しによって既存のローカル値が削除されます。


public static bool ClearSetProperty(DependencyObject targetObject, DependencyProperty targetDP)
{
    if (targetObject == null || targetDP == null)
    {
        throw new ArgumentNullException();
    }
    object localValue = targetObject.ReadLocalValue(targetDP);
    if (localValue == DependencyProperty.UnsetValue)
    {
        return false;
    }
    else
    {
        targetObject.ClearValue(targetDP);
        return true;
    }
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: