2

私はAttachedPropertyBrowsableWhenAttributePresentAttributeに出くわしましたが、それがいつ役立つかはわかりません。理想はありますか?

4

1 に答える 1

7

ブラウズ可能とは、Cider という名前の Visual Studio の WPF デザイナーのようなデザイナーが、デザイナーにプロパティを表示することを意味します。添付プロパティは型の実際のプロパティではなく、ほとんどの型に適用できるため、デザイナーがいつプロパティを表示するかしないかを判断するのは困難です。これらの属性は、特定の添付プロパティをデザイナーに表示する必要があることを開発者がデザイナーに知らせる方法です。つまり、ブラウズ可能です。この特定の属性により、デザイナーは、指定された属性が適用された型でこの添付プロパティを参照できるようにする必要があります。

添付プロパティ:

public class WhenAttributePresentTestControl : Grid
{
    public static readonly DependencyProperty ShowWhenCustomAttributePresentProperty = DependencyProperty.RegisterAttached(
      "ShowWhenCustomAttributePresent",
      typeof(int),
      typeof(WhenAttributePresentTestControl));

    public static void SetShowWhenCustomAttributePresent(UIElement element, int value)
    {
        element.SetValue(ShowWhenCustomAttributePresentProperty, value);
    }

    [AttachedPropertyBrowsableWhenAttributePresentAttribute(typeof(MyCustomAttribute))]
    public static int GetShowWhenCustomAttributePresent(UIElement element)
    {
        return (int)element.GetValue(ShowWhenCustomAttributePresentProperty);
    }
}

使用例:

[MyCustomAttribute]
public class CustomLabel : Label
{
}

public class CustomLabelNoCustomAttribute : Label
{
}

デザイナーは、CustomLabel のプロパティ エディターに ShowWhenCustomAttributePresent 添付プロパティを表示しますが、CustomLabelNoCustomAttribute の場合は表示しません。

ソース: http://blogs.msdn.com/jnak/archive/2008/01/17/showing-attached-properties-in-the-cider-wpf-designer.aspx

実際の使用法: Reflector を使用した .Net フレームワークでこの属性の使用法を見つけることができません。

面白い補足:どうやら、.Net 3.0 フレームワークの最も長い型名でもあるようです。

于 2010-01-14T18:17:03.813 に答える