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
- Наследование
- Атрибуты
Примеры
В этом примере вызывается конструктор 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, указывая фиксированное значение по умолчанию для свойства зависимостей. |