У вас есть реальный пример использования AttachedPropertyBrowsableWhenAttributePresentAttribute? - PullRequest
2 голосов
/ 14 января 2010

Я только что натолкнулся на AttachedPropertyBrowsableWhenAttributePresentAttribute , но не могу понять, когда это будет полезно. Есть идеалы?

1 Ответ

7 голосов
/ 14 января 2010

Возможность просмотра означает, что дизайнер, такой как WPF-дизайнер Visual Studio с именем Cider, отображает свойство в конструкторе. Поскольку присоединенные свойства не являются фактическим свойством типа и могут применяться практически к типу, дизайнеру сложно узнать, когда показывать или не показывать свойство. Эти атрибуты позволяют разработчику сообщить разработчику, что определенное присоединенное свойство должно отображаться в конструкторе. Другими словами: просматривается. Этот определенный атрибут позволяет разработчику знать, что это присоединенное свойство должно быть доступно для просмотра для типов, к которым применен указанный атрибут.

Прикрепленное имущество:

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
{
}

Дизайнер отобразит вложенное свойство ShowWhenCustomAttributePresent в редакторе свойств для CustomLabel, но не для CustomLabelNoCustomAttribute.

Источник: http://blogs.msdn.com/jnak/archive/2008/01/17/showing-attached-properties-in-the-cider-wpf-designer.aspx

Фактическое использование: Я не могу найти никакого использования этого атрибута в .Net Framework с Reflector.

Забавное примечание: Очевидно, это также самое длинное имя типа .Net 3.0 framework

...