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