为什么依赖项属性必须是静态的?

我已经看到它已经在这里的某个帖子中被询问过,但是我无法正确理解它。

如果有人也可以帮助我理解一小段内容,那将是很棒的。

最佳答案

这里的魔术是,DependencyProperty的声明是static而不是它的value(即内存存储)。使用static关键字添加的声明只是特定DependencyPropertyDependencyObject的标识符(键)。由于DependencyObject的所有实例都可以使用相同的标识符/键来标识属性值,因此将其设置为static是有意义的。

另一方面,当我们通过在DependancyProperty实例上调用SetValue来设置DependancyObject的值时,则每个调用SetValue的DependancyObject实例都将存储其Property的本地值。这由DependancyObject类在内部处理,该类维护Dictionary的种类,该类在DependancyProperty标识符和本地值之间具有映射。

关于c# - 为什么WPF中的依赖项属性必须是静态的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19441453/

10-14 16:40
查看更多