DependencyObject.ReadLocalValue Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Returns the local value of a dependency property, if a local value is set.

Namespace:  System.Windows
Assembly:  System.Windows (in System.Windows.dll)


Public Function ReadLocalValue ( _
    dp As DependencyProperty _
) As Object
public Object ReadLocalValue(
    DependencyProperty dp


Return Value

Type: System.Object
Returns the local value, or returns the sentinel value UnsetValue if no local value is set.


You should use the CLR wrappers, or GetValue, for most typical "get" operations for a dependency property. ReadLocalValue does not return the effective value for a variety of circumstances where the value was not locally set.

Values that are set by animations, styles, templates, default value, or property value inheritance are not considered to be local values. However, bindings and similar expressions are considered to be local values, after they have been evaluated.

When no local value is set, this method returns UnsetValue. The UnsetValue is a sentinel for this case and should not be used as a return value of custom dependency property values.


The following example checks for an existing local value with ReadLocalValue. If there is a local value, as indicated by not returning UnsetValue, then the existing local value is removed by calling 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;
        return true;

Version Information


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0


For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.