다음을 통해 공유


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 호출합니다.

병합의 정확한 동작은 사용자에게 달려 있습니다. 값을 결합하거나, 파생 메타데이터가 기본값으로 남아 있는 경우 기본값으로 되돌리거나, 특정 메타데이터 클래스에 추가한 속성의 형식과 그 의미에 따라 다른 많은 동작을 선택할 수 있습니다.

적용 대상

추가 정보