DependencyProperty.OverrideMetadata Метод

Определение

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

Перегрузки

OverrideMetadata(Type, PropertyMetadata)

Задает альтернативные метаданные для этого свойства зависимостей, если оно присутствует в экземплярах указанного типа, переопределяя метаданные, которые существовали для данного свойства зависимостей в том виде, в котором оно было унаследовано от базовых типов.

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Предоставляет альтернативные метаданные для свойства зависимостей, доступного только для чтения, когда оно присутствует в экземплярах указанного типа, переопределяя метаданные, предоставленные при первоначальной регистрации свойства зависимостей. Вы должны передать DependencyPropertyKey для свойства зависимостей, доступного только для чтения, чтобы избежать возникновения исключения.

OverrideMetadata(Type, PropertyMetadata)

Задает альтернативные метаданные для этого свойства зависимостей, если оно присутствует в экземплярах указанного типа, переопределяя метаданные, которые существовали для данного свойства зависимостей в том виде, в котором оно было унаследовано от базовых типов.

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata);
public void OverrideMetadata (Type forType, System.Windows.PropertyMetadata typeMetadata);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata)

Параметры

forType
Type

Тип, где это свойство зависимостей наследуется и где будут применены указанные альтернативные метаданные.

typeMetadata
PropertyMetadata

Метаданные для применения к свойству зависимостей в переопределяемом типе.

Исключения

Была предпринята попытка переопределения метаданных в доступном только для чтения свойстве зависимости (операция не может быть выполнена с помощью данной сигнатуры).

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

Комментарии

Метаданные свойств зависимостей должны быть переопределены до того, как система свойств будет использовать свойство зависимостей. Это соответствует времени создания конкретных экземпляров с помощью класса, который регистрирует свойство зависимостей. Вызовы OverrideMetadata должны выполняться только внутри статических конструкторов типа, предоставляющего себя как forType параметр данного метода, или с помощью аналогичного экземпляра. Попытка изменить метаданные после существования экземпляров типа owner не вызовет исключения, но приведет к несовместимости поведения в системе свойств.

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

Переданные метаданные объединяются с метаданными свойств для свойства зависимостей в том виде, в котором они существуют в базовом владельце. Все характеристики, заданные в исходных базовых метаданных, сохраняются. только те характеристики, которые были изменены в новых метаданных, будут переопределять характеристики базовых метаданных. Некоторые характеристики, такие как DefaultValue , заменяются, если они указаны в новых метаданных. Другие, например PropertyChangedCallback , объединяются. В конечном итоге, поведение слияния зависит от типа метаданных свойства, используемого для переопределения, поэтому описанное здесь поведение предназначено для существующих классов метаданных свойств, используемых свойствами зависимостей WPF. Дополнительные сведения см. в разделе метаданные свойств зависимостей и метаданные свойств платформы.

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

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Предоставляет альтернативные метаданные для свойства зависимостей, доступного только для чтения, когда оно присутствует в экземплярах указанного типа, переопределяя метаданные, предоставленные при первоначальной регистрации свойства зависимостей. Вы должны передать DependencyPropertyKey для свойства зависимостей, доступного только для чтения, чтобы избежать возникновения исключения.

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::DependencyPropertyKey ^ key);
public void OverrideMetadata (Type forType, System.Windows.PropertyMetadata typeMetadata, System.Windows.DependencyPropertyKey key);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata * System.Windows.DependencyPropertyKey -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata, key As DependencyPropertyKey)

Параметры

forType
Type

Тип, где это свойство зависимостей наследуется и где будут применены указанные альтернативные метаданные.

typeMetadata
PropertyMetadata

Метаданные для применения к свойству зависимостей в переопределяемом типе.

key
DependencyPropertyKey

Ключ доступа для свойства зависимостей, доступного только для чтения.

Комментарии

Эта сигнатура предоставляет базовую реализацию для метода идентификатора свойства зависимостей (), доступного только для чтения DependencyPropertyKey . При переопределении метаданных для свойства зависимостей, доступного для чтения и записи, используйте OverrideMetadata(Type, PropertyMetadata) .

Метаданные свойств зависимостей должны быть переопределены до того, как система свойств будет использовать свойство зависимостей. Это соответствует времени создания конкретных объектов для класса, который регистрирует свойство зависимостей. Вызовы OverrideMetadata должны выполняться только внутри статических конструкторов типа, предоставляющего себя как forType параметр данного метода, или с помощью аналогичного экземпляра. Попытка изменить метаданные после существования экземпляров типа owner не вызовет исключения, но приведет к несовместимости поведения в системе свойств.

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

Переданные метаданные объединяются с метаданными свойств для свойства зависимостей в том виде, в котором они существуют в базовом владельце. Все характеристики, заданные в исходных базовых метаданных, сохраняются. только те характеристики, которые были изменены в новых метаданных, будут переопределять характеристики базовых метаданных. Некоторые характеристики, такие как DefaultValue , заменяются, если они указаны в новых метаданных. Другие, например PropertyChangedCallback , объединяются. Поведение слияния зависит от типа метаданных свойства, используемого для переопределения. Дополнительные сведения см. в разделе метаданные свойств зависимостей и метаданные свойств платформы.

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