4

I've seen some really varying uses of AttachedProperties so far in my adventures in WPF, and am wondering, what are some of the various uses?

I've seen fairly mundane uses, such as those found in Grid and Canvas, as well as some really cool hacks allowing binding to collections without setters. What other applications have you found for AttachedProperties? (Code samples really helpful!)

4

5 回答 5

1

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

于 2010-07-07T15:32:30.513 回答
1

看看附加的行为。

http://www.codeproject.com/KB/WPF/AttachedBehaviors.aspx //不确定此链接的质量。谷歌搜索后我来到的第一个。

将行为附加到对象只是意味着让对象做一些它自己不会做的事情

您可以通过附加行为实际执行的操作的可能性是无限的,但它通常可以减少扩展控件或在代码中添加逻辑的需要。

于 2010-07-07T14:28:10.227 回答
0

以下是我为它们找到的一些更高级的用途:

  1. 标记区域(棱镜图案)

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

  1. 使用托管可扩展性框架 (MEF) 提供 XAML 资产的自定义导出

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

(与#1的项目符号相关)

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

  2. 本地化(我已经看到用于访问资源和提供翻译值的附加属性)

  3. 显然,行为也是另一个主要问题。

于 2010-07-27T16:30:41.187 回答
0

正如詹姆斯所说,依附行为是我见过的最有用的东西。我经常使用的一种是将文本放入文本框中,然后在获得焦点时使其消失。

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

于 2010-07-27T10:34:27.717 回答
0

将 ICommand 附加到任何事件: http: //geekswithblogs.net/HouseOfBilz/archive/2009/08/27/adventures-in-mvvm-ndash-binding-commands-to-any-event.aspx

非常适合我们这些使用 MVVM 的人。

于 2010-11-03T16:18:56.100 回答