在阅读了 WPF 中依赖属性的内部结构后,我想知道如何在 Silverlight 中为 WP7 实现依赖属性。调查使用了来自xda 论坛的反射器和 Dll 。
在 WPF 中:
DependencyProperty 维护您在 WPF 对象层次结构中注册的所有 DependencyProperty 的静态引用。它维护一个名为 PropertyFromName 的 HashTable,它在内部使用它来获取 DependencyProperty 对象。所以换句话说,每个dependencyProperty 对象都注册在一个全局HashTable 中。
在 Silverlight for WP7 DependencyProperties 中具有几乎相同的全局 HashTable(实际上是
static Dictionary<Type, Dictionary<string, DependencyProperty>> _registeredProperties
)
但是在查看了DependencyObject类的GetValue和SetValue方法的源代码后,我发现根本没有使用 _registeredProperties 。
有谁知道为什么以这种方式实施它?或者也许我错过了什么?先感谢您。