我正在研究Silverlight(主要用于Windows Phone开发)。我阅读了Silverlight 2 Unleashed,目前正在阅读Silverlight 4。后者有一章关于依赖属性。正如我从本章得到的那样,依赖对象(具有依赖属性)用于UI控件对象以支持动画和数据绑定系统。好。这很清楚。
现在,随着章节的进行,讨论了附加属性。使用它的主要原因(如书中以及互联网上所述)是为了防止创建子类并将附加属性添加到所关注的对象中。由于附加属性已经是依赖属性,因此也会添加附加的行为。
现在的问题是:我该怎么做?子类化有什么问题?实际上,为什么在处理附加属性时会有很多代码?
答案 0 :(得分:2)
现在的问题是:我该怎么做?
让我们看一个很好的例子 - 布局。
参加Grid
课程。如果我们想要支持这一点,那么每个控件都需要具有GridRow
和GridColumn
属性。但是,附加属性允许我们将 Grid.Row
附加到任何控件,这反过来允许Grid
在其内部正确布局控件。
附加属性都以这种基本方式工作 - 它们允许您“附加”某些定义或帮助某些行为特征正常工作而不会改变“某事”本身的东西。