Show / Hide Table of Contents

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

В этом примере демонстрируется регистрация присоединенного свойства и предоставление открытых методов доступа для использования свойства в 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);
}

См. также

  • DependencyProperty
  • Общие сведения о свойствах зависимости
  • Пользовательские свойства зависимостей
  • Практические руководства
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX