首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是依赖属性?

什么是依赖属性?
EN

Stack Overflow用户
提问于 2009-03-06 00:31:54
回答 2查看 60.6K关注 0票数 140

什么是.Net中的依赖属性(尤其是在WPF上下文中)。与常规属性有什么不同?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-06 00:43:00

依赖属性是从DependencyObject派生的类的属性,它们的特殊之处在于,它们在DependencyObject上使用一些帮助器方法,而不是简单地使用支持字段来存储值。

它们最好的一点是,它们内置了数据绑定的所有管道。如果你给它们绑定了一些东西,当它们发生变化时,它们会通知你。

票数 91
EN

Stack Overflow用户

发布于 2012-10-17 00:02:59

我发现唯一有用且写得很好的解释是这样的:http://www.wpftutorial.net/dependencyproperties.html

基本上,DependencyProperties与常规属性的不同之处在于,它们不仅是类中字段的setter/getter,而且在运行时动态检索它们的实际值。DPs的SetValue()方法非常简单,它将属性的本地值设置为您给它的值。但是,当您尝试从DependencyProperty执行GetValue()时,它将首先查找本地值,如果不存在本地值(与常规属性不同,这在DependencyProperties中是可行的),它将继续沿着逻辑UI树向上,直到找到这样的值。如果框架已经到达树的顶部,但没有找到任何本地值,那么它将使用预定义的默认值作为属性的值。

此方法允许DependencyProperties比常规属性消耗更少的内存,因为只有由用户显式设置的值才会存储在本地。

如上所述,DependencyProperties还允许我们在XAML代码中绑定它们,并在它们上设置触发器,这在常规属性上是不允许的。

我希望我已经设法消除了一些含糊之处:)

票数 96
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/617312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档