到目前为止,我在WPF的冒险中看到了一些真正不同的AttachedProperties用途,我想知道,有哪些用途?
我见过相当普通的用法,例如在Grid和Canvas中找到的用法,以及一些非常酷的黑客,允许绑定到没有setter的集合。您在AttachedProperties中找到了哪些其他应用程序? (代码示例真有用!)
答案 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)
以下是我为他们找到的一些更高级的用途:
http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html
http://csharperimage.jeremylikness.com/2010/03/custom-export-providers-with-custom.html
(争夺#1的子弹)
验证(将验证行为附加到控件)
本地化(我见过用于访问资源并提供翻译值的附加属性)
显然行为也是另一个主要行为。
答案 4 :(得分:0)
将ICommand附加到任何事件: http://geekswithblogs.net/HouseOfBilz/archive/2009/08/27/adventures-in-mvvm-ndash-binding-commands-to-any-event.aspx
非常适合我们这些使用MVVM的人。