PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将此元数据与基元数据合并。
protected:
virtual void Merge(System::Windows::PropertyMetadata ^ baseMetadata, System::Windows::DependencyProperty ^ dp);
protected virtual void Merge (System.Windows.PropertyMetadata baseMetadata, System.Windows.DependencyProperty dp);
abstract member Merge : System.Windows.PropertyMetadata * System.Windows.DependencyProperty -> unit
override this.Merge : System.Windows.PropertyMetadata * System.Windows.DependencyProperty -> unit
Protected Overridable Sub Merge (baseMetadata As PropertyMetadata, dp As DependencyProperty)
参数
- baseMetadata
- PropertyMetadata
要与此实例的值合并的基元数据。
要应用此元数据的依赖项对象。
示例
以下示例为向属性元数据添加附加属性的自定义元数据类型实现合并。
public Boolean SupportsMyFeature
{
get { return _supportsMyFeature; }
set { if (this.IsSealed != true) _supportsMyFeature = value; } //else may want to raise exception
}
protected override void Merge(PropertyMetadata baseMetadata, DependencyProperty dp)
{
base.Merge(baseMetadata, dp);
MyCustomPropertyMetadata mcpm = baseMetadata as MyCustomPropertyMetadata;
if (mcpm != null)
{
if (this.SupportsMyFeature == false)
{//if not set, revert to base
this.SupportsMyFeature = mcpm.SupportsMyFeature;
}
}
}
注解
当 (方法) OverrideMetadata 重写元数据时,此方法在内部使用。
继承者说明
派生自 PropertyMetadata 的类实现应重写此方法,以考虑它们在实现中添加的任何元数据属性。 例如,实现可能添加了新的标志枚举值,然后实现 Merge(PropertyMetadata, DependencyProperty) 应能够正确组合这些标志。
始终在实现代码之前调用基实现,因为基本实现负责合并已在类型上 PropertyMetadata 定义的所有属性。
合并的确切行为由你决定。 可以选择将值组合在一起,如果派生元数据保留为默认值,则还原为基值,或者根据已添加到特定元数据类的属性类型及其含义执行许多其他行为。