I ' Я надеюсь, что кто-нибудь сможет объяснить какое-то неожиданное поведение, с которым я столкнулся, продолжая свое исследование DependencyObjects и 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 без появления ошибки Framework.
Кто-нибудь еще находит такое странное поведение? Я бы ожидал исключение какой-то формы вроде «Вы не зарегистрировали это свойство с этим объектом» ... Matt