附加属性的各种用途是什么?

4

在我探索WPF的旅程中,我看到了一些非常不同的附加属性使用方式,想知道有哪些不同的用法?

我见过相当平凡的用法,比如在Grid和Canvas中发现的用法,还有一些很酷的技巧,允许绑定到集合而无需设置器。您还发现了哪些应用程序适用于AttachedProperties?(代码示例非常有帮助!)

5个回答

1

请查看附加的行为。

http://www.codeproject.com/KB/WPF/AttachedBehaviors.aspx //不确定此链接的质量。这是我在谷歌上找到的第一个链接。

将行为附加到对象 只是意味着让对象执行 它本身无法完成的任务

通过附加行为,您实际上可以做的事情非常多,但通常可以减少扩展控件或向代码后面添加逻辑的需要。


1

当您想要向现有类添加属性时,请使用自定义附加属性: 在 Silverlight 4 中可用之前,我创建了 一个 DataGrid 的附加属性,允许指定列的宽度为 *,以占用所有可用空间:


0

附加行为是我迄今为止看到的最有用的东西,正如詹姆斯所说。 我经常使用的一个是将文本放入文本框,然后在获得焦点时使其消失。

包含示例输入的灰色字符串非常适合此操作。 因此,对于“名称”文本框,您可能会有字符串“Joe Bloggs”。


1
不错,一个带有“水印”的文本框 - 我们经常在网站上使用它们。 - Matt DeKrey

0

这里是我发现的一些更高级的用法:

  1. 标记区域(Prism模式)

http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html

通过托管可扩展性框架(MEF)提供XAML资产的自定义导出。

http://csharperimage.jeremylikness.com/2010/03/custom-export-providers-with-custom.html

(与#1的项目符号相结合)

  1. 验证(将验证行为附加到控件)

  2. 本地化(我看到使用附加属性来访问资源并提供翻译后的值)

  3. 显然,行为也是另一个重要的方面。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接