8
我希望有人能解釋我遇到的一些意想不到的行爲,同時繼續探索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添加到DO中的特殊用法,因爲我看不到允許這種行爲的目的。
非常感謝, 馬特
我猜'SomeClass'是爲了'TestClass'(反之亦然)? – 2011-03-01 00:55:44
EllipseGeometry.RadiusXProperty是附屬屬性嗎? – 2011-03-01 00:57:23
嗨史蒂文,你猜對了,我有一個複製和粘貼錯誤。我已將TestClass重命名爲SomeClass。現在已經很晚了,我還能說什麼呢。感謝您花時間回答 – 2011-03-01 01:01:54