Практическое руководство. Регистрация присоединенного свойства
В этом примере демонстрируется регистрация присоединенного свойства и предоставление открытых методов доступа для использования свойства в XAML и в коде. Присоединенные свойства являются понятием синтаксиса, определенным в XAML. Большинство присоединенных свойств для типов WPF также реализовано как свойства зависимостей. Свойства зависимостей можно использовать на любом DependencyObject типов.
Пример
В следующем примере показано, как зарегистрировать присоединенное свойство как свойство зависимостей, с помощью RegisterAttached метод. Класс поставщика имеет возможность предоставления метаданных по умолчанию для свойства, применяемых в случае, когда свойство используется в другом классе и этот класс не переопределяет метаданные. В этом примере значение по умолчанию свойства IsBubbleSource
равно false
.
Класс поставщика для присоединенного свойства (даже если оно не зарегистрировано как свойство зависимостей) должен предоставлять статические методы доступа get и set, соответствующие правилам именования Set
[имя_присоединенного_свойства] и Get
[имя_присоединенного_свойства]. Эти методы доступа требуются для того, чтобы действующее средство чтения XAML распознало свойство как атрибут в разметке XAML и разрешило соответствующие типы.
public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached(
"IsBubbleSource",
typeof(Boolean),
typeof(AquariumObject),
new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)
);
public static void SetIsBubbleSource(UIElement element, Boolean value)
{
element.SetValue(IsBubbleSourceProperty, value);
}
public static Boolean GetIsBubbleSource(UIElement element)
{
return (Boolean)element.GetValue(IsBubbleSourceProperty);
}