附属物的各种用途是什么?

时间:2010-07-07 14:20:49

标签: wpf silverlight xaml attached-properties

到目前为止,我在WPF的冒险中看到了一些真正不同的AttachedProperties用途,我想知道,有哪些用途?

我见过相当普通的用法,例如在Grid和Canvas中找到的用法,以及一些非常酷的黑客,允许绑定到没有setter的集合。您在AttachedProperties中找到了哪些其他应用程序? (代码示例真有用!)

5 个答案:

答案 0 :(得分:1)

了解附加行为。

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

  

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

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

答案 1 :(得分:1)

如果要向现有类添加属性,请使用自定义附加属性: 在Silverlight 4中可用之前,我创建了an attached property for a DataGrid,允许使用* width指定列以占用所有可用空间):

答案 2 :(得分:0)

到目前为止詹姆斯说,附加行为是我见过的最有用的事情。我经常使用的一种方法是将文本放入文本框中,然后在获得焦点时将文本消失。

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

答案 3 :(得分:0)

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

  1. 标记区域(棱镜图案)
  2. http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html

    1. 使用托管扩展性框架(MEF)提供XAML资产的自定义导出
    2. http://csharperimage.jeremylikness.com/2010/03/custom-export-providers-with-custom.html

      (争夺#1的子弹)

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

      2. 本地化(我见过用于访问资源并提供翻译值的附加属性)

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

答案 4 :(得分:0)

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

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