Silverlight - 为什么要使用附加属性?

标签 silverlight dependency-properties attached-properties attachedbehaviors

我正在研究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/

相关文章:

c# - 从后面的代码获取并设置WPF自定义附加属性

xaml - WinRT/UWP : Loading RelativePanel with XamlReader causes XamlParseException with RelativePanels Attached Properties

c# - 在 Silverlight 4 OOB 中恢复文件下载

c# - 无法使用控件依赖属性

java - java 中抽象类属性重写导致 null

wpf - 更改该 DependencyProperty 的 PropertyChangedCallback 中的 DependencyProperty 的值

silverlight - 我应该使用 Cookie 还是独立存储来存储 Silverlight 应用程序的少量数据?

c# - Silverlight DataGrid 验证显示所有对象的验证错误|属性

silverlight - 通过 Silverlight 访问 Windows Azure API?

wpf - XAML:在 VisualStateManager 类型中找不到可附加属性 VisualStateGroups