DependencyProperty.OverrideMetadata 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在指定类型的实例上提供此依赖属性的备用元数据,而不是初始依赖属性注册中提供的元数据。
重载
| 名称 | 说明 |
|---|---|
| OverrideMetadata(Type, PropertyMetadata) |
指定此依赖属性的备用元数据(当它存在于指定类型的实例上时),重写从基类型继承时为依赖属性存在的元数据。 |
| OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey) |
在指定类型的实例上提供只读依赖属性的备用元数据,替代初始依赖属性注册中提供的元数据。 必须传递 DependencyPropertyKey 只读依赖属性,以避免引发异常。 |
OverrideMetadata(Type, PropertyMetadata)
指定此依赖属性的备用元数据(当它存在于指定类型的实例上时),重写从基类型继承时为依赖属性存在的元数据。
public:
void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata);
public void OverrideMetadata(Type forType, System.Windows.PropertyMetadata typeMetadata);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata)
参数
- forType
- Type
继承此依赖属性的类型,以及将应用提供的备用元数据的位置。
- typeMetadata
- PropertyMetadata
要应用于重写类型的依赖属性的元数据。
例外
尝试重写只读依赖属性上的元数据(不能使用此签名完成该操作)。
已为依赖属性建立元数据,因为它存在于提供的类型上。
注解
在属性系统使用依赖属性之前,应重写依赖属性元数据。 这相当于使用注册依赖属性的类创建特定实例的时间。 仅应在类型静态构造函数中执行对 OverrideMetadata 调用,该构造函数提供自己作为 forType 此方法的参数,或通过类似的实例化。 尝试在所有者类型的实例存在后更改元数据不会引发异常,但将导致属性系统中的行为不一致。
使用此方法建立特定派生类重写的元数据后,后续尝试重写同一派生类上的元数据将引发异常。
提供的元数据与依赖属性的属性元数据合并,因为它存在于基本所有者上。 原始基础元数据中指定的任何特征都将保留;只有新元数据中专门更改的特征才会替代基本元数据的特征。 某些特征(例如 DefaultValue ,如果在新元数据中指定)将被替换。 其他,例如 PropertyChangedCallback,组合在一起。 归根结底,合并行为取决于用于重写的属性元数据类型,因此此处介绍的行为适用于 WPF 依赖属性使用的现有属性元数据类。 有关详细信息,请参阅 依赖属性元数据 和 框架属性元数据。
适用于
OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)
在指定类型的实例上提供只读依赖属性的备用元数据,替代初始依赖属性注册中提供的元数据。 必须传递 DependencyPropertyKey 只读依赖属性,以避免引发异常。
public:
void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::DependencyPropertyKey ^ key);
public void OverrideMetadata(Type forType, System.Windows.PropertyMetadata typeMetadata, System.Windows.DependencyPropertyKey key);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata * System.Windows.DependencyPropertyKey -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata, key As DependencyPropertyKey)
参数
- forType
- Type
继承此依赖属性的类型,以及将应用提供的备用元数据的位置。
- typeMetadata
- PropertyMetadata
要应用于重写类型的依赖属性的元数据。
只读依赖属性的访问密钥。
注解
此签名为只读依赖属性标识符 (DependencyPropertyKey) 方法提供基础实现。 如果重写读写依赖属性的元数据,请使用 OverrideMetadata(Type, PropertyMetadata)。
在属性系统使用依赖属性之前,应重写依赖属性元数据。 这相当于为注册依赖属性的类创建特定对象的时间。 仅应在类型静态构造函数中执行对 OverrideMetadata 调用,该构造函数提供自己作为 forType 此方法的参数,或通过类似的实例化。 尝试在所有者类型的实例存在后更改元数据不会引发异常,但将导致属性系统中的行为不一致。
使用此方法建立特定派生类重写的元数据后,后续尝试重写同一派生类上的元数据将引发异常。
提供的元数据与依赖属性的属性元数据合并,因为它存在于基本所有者上。 原始基础元数据中指定的任何特征都将保留;只有新元数据中专门更改的特征才会替代基本元数据的特征。 某些特征(例如 DefaultValue ,如果在新元数据中指定)将被替换。 其他,例如 PropertyChangedCallback,组合在一起。 合并行为取决于用于重写的属性元数据类型。 有关详细信息,请参阅 依赖属性元数据 和 框架属性元数据。