다음을 통해 공유


DependencyPropertyKey.OverrideMetadata(Type, PropertyMetadata) 메서드

정의

이 종속성 속성 식별자가 나타내는 읽기 전용 종속성 속성의 메타데이터를 재정의합니다.

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata);
public void OverrideMetadata (Type forType, System.Windows.PropertyMetadata typeMetadata);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata)

매개 변수

forType
Type

이 종속성 속성에 대해 지정되어 있으며 메타데이터를 재정의해야 하는 형식입니다.

typeMetadata
PropertyMetadata

이 형식에 대해 제공되는 메타데이터입니다.

예외

읽기-쓰기 종속성 속성의 메타데이터를 재정의한 경우. 이 시그니처를 사용하여 이 작업을 수행할 수 없습니다.

제공된 형식에 있는 속성에 메타데이터가 이미 설정된 경우

예제

다음 예제에서는 클래스에서 상속 되는 기존 읽기 전용 종속성 속성에 대 한 메타 데이터를 재정의 합니다. 이 경우 시나리오 목표는 기본 속성 메타 데이터에 없는 강제 값 콜백을 추가할 이었습니다. 적절 한 메타 데이터 재정의 일반적으로 다른 이유 중 하나에 대 한 메타 데이터를 재정의할 수도 있습니다 (기본값 변경, 추가 FrameworkPropertyMetadataOptions 값 등.)

static Fishbowl() {
  Aquarium.AquariumSizeKey.OverrideMetadata(
    typeof(Aquarium),
    new PropertyMetadata(
      double.NaN,
      null,
      new CoerceValueCallback(CoerceFishbowlAquariumSize)
    )
  );
}

static object CoerceFishbowlAquariumSize(DependencyObject d,Object baseValue)
{
    //Aquarium is 2D, a Fishbowl is a round Aquarium, so the Size we return is the ellipse of that height/width rather than the rectangle
    Fishbowl fb = (Fishbowl)d;
    //other constraints assure that H,W are positive
    return Convert.ToInt32(Math.PI * (fb.Width / 2) * (fb.Height / 2));
}
Shared Sub New()
    Aquarium.AquariumSizeKey.OverrideMetadata(GetType(Aquarium), New PropertyMetadata(Double.NaN, Nothing, New CoerceValueCallback(AddressOf CoerceFishbowlAquariumSize)))
End Sub

Private Shared Function CoerceFishbowlAquariumSize(ByVal d As DependencyObject, ByVal baseValue As Object) As Object
    'Aquarium is 2D, a Fishbowl is a round Aquarium, so the Size we return is the ellipse of that height/width rather than the rectangle
    Dim fb As Fishbowl = CType(d, Fishbowl)
    'other constraints assure that H,W are positive
    Return Convert.ToInt32(Math.PI * (fb.Width / 2) * (fb.Height / 2))
End Function

설명

읽기 전용 종속성 속성 메타 데이터 재정의 읽기-쓰기 종속성 속성 메타 데이터를 재정의 하는 것과 비슷한 이유로 수행 이며 키 수준에서 액세스를 제한 하기 때문에 메타 데이터에 지정 된 동작 (집합 동작을 변경할 수 있습니다. default 값, 예를 들어).

읽기-쓰기 종속성 속성을 사용 하 여 읽기 전용 종속성 속성 메타 데이터 재정의 수행 해야 해당 속성을 사용 하 여 속성 시스템에서 이전 처럼 (이 매월에 등록 하는 개체의 해당 특정 인스턴스를 속성은 인스턴스화합니다). 에 대 한 호출 OverrideMetadata 서 자신을 제공 하는 형식의 정적 생성자 내에 수행 해야 합니다 forType 이 메서드 또는 해당 클래스에 대 한 해당 초기화 매개 변수입니다.

이 메서드를 효과적으로 전달 합니다 OverrideMetadata 전달 하는 메서드는 DependencyPropertyKey 인스턴스로 키 매개 변수.

적용 대상

추가 정보