为什么依赖项属性必须是静态的?
我已经看到它已经在这里的某个帖子中被询问过,但是我无法正确理解它。
如果有人也可以帮助我理解一小段内容,那将是很棒的。
最佳答案
这里的魔术是,DependencyProperty
的声明是static
而不是它的value
(即内存存储)。使用static
关键字添加的声明只是特定DependencyProperty
的DependencyObject
的标识符(键)。由于DependencyObject的所有实例都可以使用相同的标识符/键来标识属性值,因此将其设置为static
是有意义的。
另一方面,当我们通过在DependancyProperty
实例上调用SetValue
来设置DependancyObject
的值时,则每个调用SetValue的DependancyObject
实例都将存储其Property的本地值。这由DependancyObject
类在内部处理,该类维护Dictionary
的种类,该类在DependancyProperty
标识符和本地值之间具有映射。
关于c# - 为什么WPF中的依赖项属性必须是静态的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19441453/