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