【问题标题】:What are the various uses of Attached Properties?附加属性的各种用途是什么?
【发布时间】:2010-07-07 14:20:49
【问题描述】:

到目前为止,在我的 WPF 冒险中,我已经看到了 AttachedProperties 的一些真正不同的用途,我想知道,这些不同的用途是什么?

我见过相当普通的用法,例如在 Grid 和 Canvas 中发现的那些,以及一些非常酷的 hack,允许在没有 setter 的情况下绑定到集合。您还为 AttachedProperties 找到了哪些其他应用程序? (代码示例真的很有帮助!)

【问题讨论】:

    标签: wpf silverlight xaml attached-properties


    【解决方案1】:

    查看附加行为。

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 很好,一个“带水印”的文本框——我们经常在网站上使用这些。
        【解决方案4】:

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

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

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

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

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

        (与#1 的项目符号并列)

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

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

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 2011-07-16
            • 2019-08-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-06-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多