导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

DependencyObject.SetValue 方法

2013/12/13

DependencyObject 设置依赖项属性的本地值。

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

public void SetValue(
	DependencyProperty dp,
	Object value
)

参数

dp
类型: System.Windows.DependencyProperty
要设置的依赖项属性的标识符。
value
类型: System.Object
新的本地值。

异常条件
ArgumentException

value 的类型不是为 dp 属性注册时使用的正确类型。

如果提供的类型与最初注册时为依赖项属性声明的类型不匹配,则会引发异常。应始终以适当的类型提供 value 参数。

相反,若要使用 SetValue 的托管代码版本,您必须提供 DependencyProperty 对象的输入。您一般从作为依赖项属性标识符的公共静态属性获取此值,该属性存在于拥有依赖项属性本身的同一对象上。请注意并非所有属性都是依赖项属性,这意味着 SetValue 的托管代码版本不能用于访问 Windows Phone 的托管 API 中所有可能的属性(您只能访问依赖项属性)。

对于用户代码,通常不需要调用 SetValue。通常 Windows Phone 属性或自定义依赖项属性具有包装它的 CLR 属性,您可以通过传统的 CLR 用法设置属性值。有以下三种更常使用 SetValue 的值得注意的情况:

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

  • 您正在定义回调或处于已经获得一个 DependencyProperty 标识符的其他作用域中,在该作用域中可能存在多个您要与之交互的依赖项属性。在这些情况下,调用 SetValue 传递标识符可能更简单。

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

如果在活动动画的中间发生属性值更改,该 SetValue 调用将修改动画的基值。停止动画时,该动画将返回动画过程中设置的新基值。这与 WPF 中的行为相同。

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


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

显示:
© 2015 Microsoft