Поделиться через


Практическое руководство. Регистрация вложенного свойства зависимостей

В этом примере демонстрируется регистрация вложенного свойства зависимостей и предоставление общих методов доступа для использования свойства в Extensible Application Markup Language (XAML) и в коде. Вложенные свойства зависимостей являются понятиями синтаксиса, определенными в Extensible Application Markup Language (XAML). Большинство вложенных свойств для типов WPF также реализовано как свойства зависимостей. Свойства зависимостей можно использовать для любых типов DependencyObject.

Пример

В следующем примере показано, как зарегистрировать вложенное свойство в качестве свойства зависимости с помощью метода RegisterAttached. Класс поставщика имеет возможность предоставления метаданных по умолчанию для свойства, применяемого в случаях, когда свойство используется в другом классе, а этот класс не переопределяет метаданные. В этом примере значение по умолчанию свойства IsBubbleSource равно false.

Класс поставщика для присоединенного свойства (даже если оно не зарегистрировано как свойство зависимостей) должен предоставлять статические методы доступа get и set, соответствующие правилам именования Set[имя_присоединенного_свойства] и Get[имя_присоединенного_свойства]. Эти методы доступа требуются для того, чтобы действующее средство чтения XAML распознало свойство как атрибут в разметке XAML и разрешило соответствующие типы. 

Public Shared ReadOnly IsBubbleSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("IsBubbleSource", GetType(Boolean), GetType(AquariumObject), New FrameworkPropertyMetadata(False, FrameworkPropertyMetadataOptions.AffectsRender))
Public Shared Sub SetIsBubbleSource(ByVal element As UIElement, ByVal value As Boolean)
    element.SetValue(IsBubbleSourceProperty, value)
End Sub
Public Shared Function GetIsBubbleSource(ByVal element As UIElement) As Boolean
    Return CType(element.GetValue(IsBubbleSourceProperty), Boolean)
End Function
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);
}

См. также

Ссылки

DependencyProperty

Основные понятия

Общие сведения о свойствах зависимости

Пользовательские свойства зависимостей

Другие ресурсы

Разделы пошагового руководства по свойствам