Поделиться через


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 качестве параметра этого метода, или с помощью аналогичного экземпляра. Попытка изменить метаданные после существования экземпляров типа владельца не приведет к возникновению исключений, но приведет к несогласованности поведения в системе свойств.

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

Предоставленные метаданные объединяются с метаданными свойства для свойства зависимостей, так как они существуют у базового владельца. Все характеристики, указанные в исходных базовых метаданных, сохраняются; Только те характеристики, которые были специально изменены в новых метаданных, будут переопределять характеристики базовых метаданных. Некоторые характеристики, такие как , 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 качестве параметра этого метода, или с помощью аналогичного экземпляра. Попытка изменить метаданные после существования экземпляров типа владельца не приведет к возникновению исключений, но приведет к несогласованности поведения в системе свойств.

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

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

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