PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) 方法

定义

将此元数据与基本元数据合并。

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

要与此实例的值合并的基本元数据。

dp
DependencyProperty

要向其应用此元数据的依赖属性。

示例

以下示例为向属性元数据添加附加属性的自定义元数据类型实现合并。

public Boolean SupportsMyFeature
{
    get { return _supportsMyFeature; }
    set { if (!this.IsSealed) _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)
        {//if not set, revert to base
            this.SupportsMyFeature = mcpm.SupportsMyFeature;
        }
    }
}

注解

在重写元数据(OverrideMetadata 方法)时,此方法在内部使用。

继承者说明

派生自 PropertyMetadata 的类实现应重写此方法,以考虑他们在实现中添加的任何元数据属性。 例如,你的实现可能已添加新的标志枚举值, Merge(PropertyMetadata, DependencyProperty) 然后实现应能够正确合并这些标志。

始终在实现代码之前调用基本实现,因为基本实现负责合并已在类型上 PropertyMetadata 定义的所有属性。

合并的确切行为由你决定。 可以选择将值组合在一起,如果派生元数据保留为默认值,或者根据添加到特定元数据类的属性类型以及它们的含义,将返回基值。

适用于

另请参阅