DependencyProperty.UnsetValue Field

Definition

Specifies a static value that is used by the WPF property system rather than null to indicate that the property exists, but does not have its value set by the property system.

C#
public static readonly object UnsetValue;

Field Value

Remarks

UnsetValue is a sentinel value that is used for scenarios where the WPF property system is unable to determine a requested DependencyProperty value. UnsetValue is used rather than null, because null could be a valid property value, as well as a valid (and frequently used) DefaultValue.

UnsetValue is never returned out of 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. 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.

Setting a DefaultValue of UnsetValue is specifically disallowed.

DependencyObject.ReadLocalValue returns UnsetValue when the requested property has not been locally set.

UnsetValue has a special meaning when used as the return value of a CoerceValueCallback. For details, see Dependency Property Callbacks and Validation.

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.

Applies to

Product Versions
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9