DependencyObject.GetValue 方法

2013/12/13

DependencyObject 返回依赖项属性的当前有效值。

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

public Object GetValue(
	DependencyProperty dp
)

参数

dp
类型: System.Windows.DependencyProperty
要为其检索值的属性的 DependencyProperty 标识符。

返回值

类型: System.Object
返回当前的有效值。

异常条件
ArgumentNullException

dp 为 null。

“有效值”是属性系统向请求值的任何调用方返回的属性值。有效值是属性系统对参与属性系统值优先级的所有可能输入进行计算后得出的结果。这包括属性更改回调、数据绑定、样式和模板以及动画。

对于用户代码,通常不需要调用 GetValue。通常,Windows Phone 依赖项属性或自定义依赖项属性具有包装它的 CLR 属性,您可以通过简单传统的 CLR 用法获取属性值。以下三种情况值得注意,其中可能会 GetValue 使用而不使用 CLR 包装:

  • 您正在自己定义自定义依赖项属性。将调用 GetValue 作为为 CLR 用法定义您自己的属性 get 访问器/包装的一部分。

  • 将在公开 Windows Phone 属性系统的较低级别的 API 范围内操作。此类 API 经常使用 DependencyProperty 值作为参数或返回值。例如,您可能会定义一个回调,或处于一些其他范围中,而在这些范围中 DependencyProperty 标识符正在传递给您。可能存在多于一个依赖项属性,您可能要在该范围内与它们交互。在这些情况下,调用 GetValue 传递您已有的标识符可能更简单。

  • DependencyProperty 标识符引用附加属性(或您不确定它是附加属性还是具有 CLR 包装的依赖项属性)。附加的属性的每个 XAML 实现模式还具有专用的 get 和 set 访问器,这样类型通常更为安全。但是,如果您已拥有该标识符,使用 GetValue 仍然更为方便。

下面的示例显示一个简单的依赖项属性声明。对 GetValue 的调用构成新依赖项属性的 CLR 包装的完整 get 访问器实现。


public class Fish : Control
{
    public static readonly DependencyProperty SpeciesProperty =
    DependencyProperty.Register(
    "Species",
    typeof(string),
    typeof(Fish), null
    );
    public string Species
    {
        get { return (string)GetValue(SpeciesProperty); }
        set { SetValue(SpeciesProperty, (string)value); }
    }
}


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2014 Microsoft