所以我想我理解了依赖属性是什么以及我们为什么需要它们 – 它们是由Silverlight /
WPF库管理的属性,这样运行时可以对它们的设置方式有一些控制,使它们能够执行诸如赋予动画优先权之类的功能.关于属性和其他漂亮功能的其他类型的请求.
我的问题是,框架如何知道如何做到这一点?如果依赖属性总是通过其父对象上的getter / setter访问(遵循GetValue()和SetValue())那么依赖库@如何知道谁在发出请求以确定优先级呢?
对不起,如果这是一个非常基本/明显的问题.
*是否有管理依赖项属性的容器的名称?我正在考虑DP注册表,考虑到我们必须注册它们?
最佳答案 是的,有一个注册表,但它全部隐藏.并且,依赖属性完全不是通过Getter和Setter设置的,而是DependencyObject具有名为GetValue和SetValue的方法,您实际将句柄传递给依赖项属性.假设你的DP有注册表,它有你的DP字典和句柄(注册后得到的DP对象)是关键.
这样,注册表就知道修改的时间和内容,更新的内容以及发送通知的对象.
您可以使用反射器来探索.NET的内部,您可以通过调用DependencyProperty.Register来了解每个DP都需要注册,然后才能使用它.