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
- Наследование
- Атрибуты
Примеры
В этом примере вызывается конструктор PropertyMetadata(Object), который создает PropertyMetadata
объект , который сообщает значение по умолчанию для 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
значение только в том случае, если требуется одно или оба этих поведения. В противном случае для параметра можно передатьpropertyMetadata
значениеnull
, если свойство зависимостей зарегистрировано в системе свойств зависимостей. Дополнительные сведения см. в разделе DependencyProperty.Register.
Если включает PropertyMetadata
ссылку обратного вызова, измененную свойством, этот метод должен быть статическим методом класса , который предоставляет идентификатор DependencyProperty , где PropertyMetadata
он применяется. Инструкции по написанию этого метода описаны в разделе Пользовательские свойства зависимостей , а также в справочном разделе для делегата PropertyChangedCallback .
Примечание
После создания экземпляр не имеет свойства, PropertyMetadata
которое можно использовать для поиска обратного вызова или даже для определения имени метода обратного вызова. Эти сведения считаются подробными сведениями о реализации свойства зависимостей, и только сама система свойств зависимостей должна иметь возможность вызывать этот метод.
Создание экземпляра значения PropertyMetadata
Существует два метода, которые могут создать PropertyMetadata
экземпляр: конструктор и статический метод PropertyMetadata.Create . Каждый из этих методов имеет несколько сигнатур. Чаще используются конструкторы. Однако необходимо использовать PropertyMetadata.Create , если требуется, чтобы механизм значений по умолчанию для свойства зависимостей был потокобезопасн. Дополнительные сведения см. в разделе "Метаданные свойства свойств для пользовательского свойства зависимостей" статьи Пользовательские свойства зависимостей .
Конструкторы
PropertyMetadata(Object) |
Инициализирует новый экземпляр класса PropertyMetadata , используя значение свойства по умолчанию. |
PropertyMetadata(Object, PropertyChangedCallback) |
Инициализирует новый экземпляр класса PropertyMetadata , используя значение свойства по умолчанию и ссылку обратного вызова. |
Свойства
CreateDefaultValueCallback |
Возвращает ссылку на метод обратного вызова, предоставляющий значение свойства по умолчанию. |
DefaultValue |
Возвращает значение по умолчанию для свойства зависимостей. |
Методы
Create(CreateDefaultValueCallback) |
Создает значение PropertyMetadata , указывая обратный вызов, устанавливающий значение по умолчанию для свойства зависимостей. |
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
Создает значение PropertyMetadata , указывая обратный вызов, который устанавливает значение по умолчанию для свойства зависимостей и обратный вызов, измененный свойством. |
Create(Object) |
Создает значение PropertyMetadata , указывая фиксированное значение по умолчанию для свойства зависимостей. |
Create(Object, PropertyChangedCallback) |
Создает значение PropertyMetadata , указывая фиксированное значение по умолчанию для свойства зависимостей и обратный вызов, измененный свойством. |
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по