PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) 메서드

정의

이 메타데이터를 기본 메타데이터와 병합합니다.Merges this metadata with the base metadata.

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

이 인스턴스의 값과 병합할 기본 메타데이터입니다.The base metadata to merge with this instance's values.

dp
DependencyProperty

이 메타데이터를 적용하는 종속성 속성입니다.The dependency property to which this metadata is being applied.

예제

다음 예제에서는 추가 속성을 속성 메타 데이터를 추가 하는 사용자 지정 메타 데이터 형식에 대 한 병합을 구현 합니다.The following example implements a merge for a custom metadata type that adds an additional property to the property metadata.

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 메서드).This method is used internally when metadata is being overridden (OverrideMetadata method).

상속자 참고

에서 파생 되는 클래스 구현은 해당 PropertyMetadata 구현에 추가 된 메타 데이터 속성을 고려 하도록이 메서드를 재정의 해야 합니다.Class implementations that derive from PropertyMetadata should override this method to account for any metadata properties they have added in their implementations. 예를 들어, 구현 추가 했을 수는 새 플래그 열거형 값 및 Merge(PropertyMetadata, DependencyProperty) 구현 이러한 플래그를 올바르게 결합 수 있어야 합니다.For instance, your implementation might have added a new flagwise enumeration value, and the Merge(PropertyMetadata, DependencyProperty) implementation should then be able to combine those flags correctly.

기본 구현에서는 형식에 이미 정의 되어 있는 모든 속성을 병합 하므로 항상 기본 구현을 호출 해야 합니다 PropertyMetadata .Always call the base implementation prior to your implementation code, because the base implementation takes care of merging all the properties already defined on the PropertyMetadata type.

병합의 정확한 동작은 사용자에 게 있습니다.The exact behavior of the merge is up to you. 파생 된 메타 데이터가 기본에 남아 있는 경우에는 값을 결합 하 고 기준 값으로 되돌리거나 특정 메타 데이터 클래스에 추가한 속성의 형식 및 해당 의미를 기반으로 하는 다른 여러 동작을 선택할 수 있습니다.You could choose to have values combined, revert to base value if the derived metadata were left at the default, or many other behaviors based on the types of properties you have added to your particular metadata class, and their meanings.

적용 대상

추가 정보