DependencyPropertyKey.OverrideMetadata(Type, PropertyMetadata) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 종속성 속성 식별자가 나타내는 읽기 전용 종속성 속성의 메타데이터를 재정의합니다.
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 인스턴스로 키 매개 변수.