DependencyProperty.UnsetValue フィールド


プロパティは存在するが、その値がプロパティ システムによって設定されていないことを示すために、WPFWPF プロパティ システムが null の代わりに使用する静的な値を指定します。Specifies a static value that is used by the WPFWPF property system rather than null to indicate that the property exists, but does not have its value set by the property system.

public: static initonly System::Object ^ UnsetValue;
public static readonly object UnsetValue;
 staticval mutable UnsetValue : obj
Public Shared ReadOnly UnsetValue As Object 



UnsetValue は、WPFWPF プロパティシステムが、要求された DependencyProperty 値を特定できない場合に使用される sentinel 値です。UnsetValue is a sentinel value that is used for scenarios where the WPFWPF property system is unable to determine a requested DependencyProperty value. nullではなく UnsetValue が使用されます。これは、null が有効なプロパティ値であり、有効な (および頻繁に使用される) DefaultValueである可能性があるためです。UnsetValue is used rather than null, because null could be a valid property value, as well as a valid (and frequently used) DefaultValue.

UnsetValueDependencyObject.GetValueから返されることはありません。UnsetValue is never returned out of DependencyObject.GetValue. DependencyObject インスタンスの依存関係プロパティで DependencyObject.GetValue を呼び出すと、次のいずれかが適用されます。When you call DependencyObject.GetValue on a dependency property on a DependencyObject instance, one of the following applies:

  • 依存関係プロパティには、メタデータに既定値が設定されており、その値が返されます。A dependency property has a default value established in metadata and that value is returned. この値は DefaultMetadataから取得できます。This value might come from DefaultMetadata.

  • 他の値がプロパティシステムによって設定されており、既定値が関連していません。Some other value was established by the property system, and the default value is no longer relevant. 詳細については、「依存関係プロパティ値の優先順位」を参照してください。For details, see Dependency Property Value Precedence.

UnsetValueDefaultValue の設定は、特に許可されていません。Setting a DefaultValue of UnsetValue is specifically disallowed.

要求されたプロパティがローカルに設定されていない場合、DependencyObject.ReadLocalValueUnsetValue を返します。DependencyObject.ReadLocalValue returns UnsetValue when the requested property has not been locally set.

UnsetValue は、CoerceValueCallbackの戻り値として使用される場合に特別な意味を持ちます。UnsetValue has a special meaning when used as the return value of a CoerceValueCallback. 詳細については、「依存関係プロパティのコールバックと検証」を参照してください。For details, see Dependency Property Callbacks and Validation.

データベースにバインドしている場合、UnsetValueValueと同じではありません。これは、Value が true null と等しくない方法と似ています。If you are binding to a database, note that UnsetValue is not equivalent to Value, in a similar way to how Value is not equivalent to a true null.