我正在研究Silverlight(主要用于Windows Phone开发)。我读过《Silverlight 2 Unleashed》,目前正在阅读《Silverlight 4 Unleashed》。后者有一章介绍依赖属性。正如我从本章中了解到的那样,依赖对象(具有依赖属性)用于 UI 控制对象以支持动画和数据绑定(bind)系统。好的。这很清楚。
现在,随着本章的继续,我们将讨论附加属性。使用它的主要原因(如书中和互联网上所述)是为了防止创建子类并向相关对象添加附加属性。由于附加属性已经是依赖属性,因此附加的行为也会被添加。
现在的问题是:我必须做什么?子类化有什么问题?确实,为什么在处理附加属性时有很多代码?
最佳答案
The question now: what do I have to do that?
让我们看一个很好的例子 - 布局。
采用Grid
类。如果我们想支持这一点,每个控件都需要有 GridRow 和 GridColumn 属性。但是,附加属性允许我们将Grid.Row
附加到任何控件,这反过来又允许Grid
在其自身内正确布局该控件。
附加属性都以这种基本方式工作 - 它们允许您“附加”定义或帮助某些行为功能正常工作的内容,而无需更改“内容”本身。
关于Silverlight - 为什么要使用附加属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18257274/