PropertyMetadata Класс

Определение

Определяет аспекты поведения свойства зависимостей, включая условия, с которыми он был зарегистрирован. Дополнительные сведения о том, как PropertyMetadata используется для свойств зависимостей, см. в настраиваемых свойств зависимостей.

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertyMetadata
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class PropertyMetadata
Public Class PropertyMetadata
Наследование
Object IInspectable PropertyMetadata
Атрибуты

Примеры

В этом примере вызывается конструктор PropertyMetadata(Object), который создает , который сообщает значение по умолчанию для DependencyProperty. Затем PropertyMetadata используется для регистрации присоединенного свойства при вызове RegisterAttached.

public abstract class AquariumServices : DependencyObject
{
    public enum Buoyancy { Floats, Sinks, Drifts }

    public static readonly DependencyProperty BuoyancyProperty = DependencyProperty.RegisterAttached(
      "Buoyancy",
      typeof(Buoyancy),
      typeof(AquariumServices),
      new PropertyMetadata(Buoyancy.Floats)
    );
    public static void SetBuoyancy(DependencyObject element, Buoyancy value)
    {
        element.SetValue(BuoyancyProperty, value);
    }
    public static Buoyancy GetBuoyancy(DependencyObject element)
    {
        return (Buoyancy)element.GetValue(BuoyancyProperty);
    }
}

Комментарии

Определение экземпляра PropertyMetadata является частью сценария определения пользовательского свойства зависимостей. Сведения и примеры см. в свойства пользовательских зависимостей.

Значение PropertyMetadata представляет два аспекта поведения свойства зависимости:

  • Предоставляет значение по умолчанию, которое используется в качестве значения свойства, если тип владельца специально не инициализирует значение, или значение задается пользовательским кодом или другими механизмами.
  • Ссылается на обратный вызов, который вызывается, если система свойств зависимостей обнаруживает, что свойство зависимостей изменилось. Как правило, свойству зависимостей требуется только PropertyMetadata значение, если требуется одно или оба этих поведения. В противном случае значение null можно передать для параметра propertyMetadata при регистрации свойства зависимостей в системе свойств зависимостей. Дополнительные сведения см. в разделе DependencyProperty.Register.

Если PropertyMetadata содержит ссылку на обратный вызов с измененным свойством, этот метод должен быть статическим методом класса, который предоставляет идентификатор DependencyProperty, где применяется этот PropertyMetadata. Как написать этот метод, описано в разделе свойства пользовательских зависимостей, а также справочный раздел для делегата PropertyChangedCallback.

Заметка

После создания экземпляр PropertyMetadata не имеет свойства, которое можно использовать для поиска обратного вызова или даже для определения имени метода обратного вызова. Эта информация считается подробной реализацией свойства зависимостей, и только сама система свойств зависимостей должна иметь возможность вызывать этот метод.

Создание экземпляра значения PropertyMetadata

Существует два метода, которые могут создать экземпляр PropertyMetadata экземпляра: конструктор и статический PropertyMetadata.Create. Каждый из этих методов имеет несколько сигнатур. Чаще всего используются конструкторы. Однако необходимо использовать PropertyMetadata.Create, если требуется, чтобы механизм значений по умолчанию для свойства зависимостей был потокобезопасн. Дополнительные сведения см. в разделе "Метаданные свойств для пользовательского свойства зависимостей" раздела свойства настраиваемых зависимостей разделе.

Конструкторы

PropertyMetadata(Object, PropertyChangedCallback)

Инициализирует новый экземпляр класса PropertyMetadata с помощью значения свойства по умолчанию и ссылки на обратный вызов.

PropertyMetadata(Object)

Инициализирует новый экземпляр класса propertyMetadata с помощью значения свойства по умолчанию.

Свойства

CreateDefaultValueCallback

Возвращает ссылку на метод обратного вызова, предоставляющий значение свойства по умолчанию.

DefaultValue

Возвращает значение по умолчанию для свойства зависимостей.

Методы

Create(CreateDefaultValueCallback, PropertyChangedCallback)

Создает значение PropertyMetadata, указывая обратный вызов, который устанавливает значение по умолчанию для свойства зависимостей и обратный вызов, измененный свойством.

Create(CreateDefaultValueCallback)

Создает значение PropertyMetadata, указывая обратный вызов, который устанавливает значение по умолчанию для свойства зависимостей.

Create(Object, PropertyChangedCallback)

Создает значение PropertyMetadata, указывая фиксированное значение по умолчанию для свойства зависимостей и обратный вызов с измененным свойством.

Create(Object)

Создает значение PropertyMetadata, указывая фиксированное значение по умолчанию для свойства зависимостей.

Применяется к

См. также раздел