DependencyObjects 및 DependencyProperties에 대한 내 탐구를 계속하면서 누군가가 예상치 못한 동작을 설명 할 수 있기를 바랍니다.DependencyObject에 등록되지 않은 DependencyProperties에 액세스 할 수있는 이유는 무엇입니까?
주어진 다음의 간단한 클래스 :
이class SomeClass : DependencyObject {
}
내가 즐겁게 쓸 수있는 코드와 같은 : 다음과 같은 출력 제공
public static void Test() {
SomeClass a = new SomeClass();
Console.WriteLine(a.GetValue(EllipseGeometry.RadiusXProperty));
a.SetValue(EllipseGeometry.RadiusXProperty, 3.24);
Console.WriteLine(a.GetValue(EllipseGeometry.RadiusXProperty));
}
:
0
3.24
아무것도에 없습니다를 내 EllipseGeometry 클래스와 관계가있는 클래스이며, 클래스를 클래스의 소유자로 추가하지 않았습니다. EllipseGeometry.RadiusXProperty 속성을 사용하거나 RegisterAttached()를 사용하는 이유는 무엇입니까? 프레임 워크가 오류를 발생시키지 않으면 모든 DP를 내 DO에 추가 할 수 있습니다.
누구도이 이상한 행동을합니까? 나는 "당신은이 객체에이 속성을 등록하지 않았습니다"라는 라인을 따라 어떤 형태의 예외를 예상했을 것입니다 ... 나는 이런 방식으로 DP를 추가하기위한 특별한 용도가 있는지에 대해 어떤 조언을 해줄 것입니다. 이 동작을 허용하는 목적을 알 수 없습니다.
많은 감사, 매트
'SomeClass'는'TestClass' (또는 그 반대)를 의미한다고 생각합니까? –
EllipseGeometry.RadiusXProperty는 연결된 속성입니까? –
안녕하세요, Steven, 당신은 정확하게 추측하고 복사 및 붙여 넣기 오류가 발생했습니다. TestClass의 이름을 SomeClass로 변경했습니다. 늦었 어. 내가 더 말할 수 있을지. –