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 != 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 已定義的所有屬性。

合併的確切行為會由您決定。 您可以選擇結合值、還原為基底值,如果衍生的中繼資料保留為預設值,或根據您已新增至特定中繼資料類別的屬性類型,以及其意義,許多其他行為。

適用於

另請參閱