【发布时间】:2021-09-10 23:33:57
【问题描述】:
什么时候应该在 WPF 中使用依赖属性?
它们是静态的,因此与使用 .NET 属性相比,我们可以节省大量内存。 使用依赖属性而不是 .NET 属性的其他好处是: 1)无需检查线程访问 2) 提示一个包含元素被渲染 等等……
所以看来我应该总是在我使用 WPF 的项目中使用依赖属性?
也许对于助手类的一些琐碎属性我可以 摆脱 .NET 属性...
【问题讨论】:
-
重要的是,依赖属性只能用于从 DependencyObject 继承的对象。不在 ViewModel 上使用它们的原因之一,因此并不总是在 WPF 项目中。它们对性能的影响也很小。
-
我不知道你为什么说“不需要检查线程访问”?据我所知,如果您从另一个线程而不是 UI 线程设置依赖属性的值,则会引发异常。
-
依赖属性不是静态的,不会节省任何内存。只有属性的定义是静态的。所有依赖属性都绑定到一个对象引用,因此该属性确实会为每个实例占用一块内存。