UnsetValue 字段
折叠目录
展开目录

DependencyProperty.UnsetValue 字段

2013/12/13

指定由属性系统使用的静态值而非 null,以指示属性存在,但其值未经属性系统设置。

Namespace:  System.Windows
程序集:  System.Windows(位于 System.Windows.dll 中)

public static readonly Object UnsetValue

字段值

类型: System.Object
未设置值的 sentinel 值。

UnsetValue 是在属性系统不能确定请求的 DependencyProperty 值的情况下使用的 sentinel 值。使用 UnsetValue 而非 null,因为 null 可能是有效的属性值以及有效的(并经常使用的)默认值。返回的 UnsetValue 不应该超出 GetValue。当您对 DependencyObject 上的依赖项属性调用 GetValue 时,以下之一适用:

  • 依赖项属性确定了一个默认值,而且该值已返回。

  • 某个其他值由属性系统确定,而且默认值不再相关。有关详细信息,请参见Windows Phone 的依赖项属性

当未在本地设置被请求的属性时,ReadLocalValue 返回 UnsetValue

重要说明重要说明:

不要使用 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

Windows Phone

显示:
© 2016 Microsoft