DependencyProperty.OverrideMetadata Метод

Определение

Предоставляет альтернативные метаданные для этого свойства зависимостей, когда оно присутствует в экземплярах указанного типа по сравнению с метаданными, предоставленными регистрацией первоначального свойства зависимостей.Supplies alternate metadata for this dependency property when it is present on instances of a specified type, versus the metadata that was provided in the initial dependency property registration.

Перегрузки

OverrideMetadata(Type, PropertyMetadata)

Задает альтернативные метаданные для этого свойства зависимостей, если оно присутствует в экземплярах указанного типа, переопределяя метаданные, которые существовали для данного свойства зависимостей в том виде, в котором оно было унаследовано от базовых типов.Specifies alternate metadata for this dependency property when it is present on instances of a specified type, overriding the metadata that existed for the dependency property as it was inherited from base types.

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Предоставляет альтернативные метаданные для свойства зависимостей, доступного только для чтения, когда оно присутствует в экземплярах указанного типа, переопределяя метаданные, предоставленные при первоначальной регистрации свойства зависимостей.Supplies alternate metadata for a read-only dependency property when it is present on instances of a specified type, overriding the metadata that was provided in the initial dependency property registration. Вы должны передать DependencyPropertyKey для свойства зависимостей, доступного только для чтения, чтобы избежать возникновения исключения.You must pass the DependencyPropertyKey for the read-only dependency property to avoid raising an exception.

OverrideMetadata(Type, PropertyMetadata)

Задает альтернативные метаданные для этого свойства зависимостей, если оно присутствует в экземплярах указанного типа, переопределяя метаданные, которые существовали для данного свойства зависимостей в том виде, в котором оно было унаследовано от базовых типов.Specifies alternate metadata for this dependency property when it is present on instances of a specified type, overriding the metadata that existed for the dependency property as it was inherited from base types.

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

Тип, где это свойство зависимостей наследуется и где будут применены указанные альтернативные метаданные.The type where this dependency property is inherited and where the provided alternate metadata will be applied.

typeMetadata
PropertyMetadata

Метаданные для применения к свойству зависимостей в переопределяемом типе.The metadata to apply to the dependency property on the overriding type.

Исключения

Была предпринята попытка переопределения метаданных в доступном только для чтения свойстве зависимости (операция не может быть выполнена с помощью данной сигнатуры).An attempt was made to override metadata on a read-only dependency property (that operation cannot be done using this signature).

Метаданные уже были установлены для данного свойства зависимостей в том виде, в котором оно существует в предоставленном типе.Metadata was already established for the dependency property as it exists on the provided type.

Комментарии

Метаданные свойств зависимостей должны быть переопределены до того, как система свойств будет использовать свойство зависимостей.Dependency property metadata should be overridden before the property system uses the dependency property. Это соответствует времени создания конкретных экземпляров с помощью класса, который регистрирует свойство зависимостей.This equates to the time that specific instances are created using the class that registers the dependency property. Вызовы OverrideMetadata должны выполняться только в статических конструкторах типа, который предоставляет себя как параметр forType данного метода или с помощью аналогичного экземпляра.Calls to OverrideMetadata should only be performed within the static constructors of the type that provides itself as the forType parameter of this method, or through similar instantiation. Попытка изменить метаданные после существования экземпляров типа owner не вызовет исключения, но приведет к несовместимости поведения в системе свойств.Attempting to change metadata after instances of the owner type exist will not raise exceptions, but will result in inconsistent behaviors in the property system.

После того как метаданные определенного производного класса устанавливаются с помощью этого метода, последующие попытки переопределения метаданных в этом же производном классе вызовут исключение.After metadata for a particular derived class override is established with this method, subsequent attempts to override metadata on this same derived class will raise an exception.

Переданные метаданные объединяются с метаданными свойств для свойства зависимостей в том виде, в котором они существуют в базовом владельце.The supplied metadata is merged with the property metadata for the dependency property as it exists on the base owner. Все характеристики, заданные в исходных базовых метаданных, сохраняются. только те характеристики, которые были изменены в новых метаданных, будут переопределять характеристики базовых метаданных.Any characteristics that were specified in the original base metadata will persist; only those characteristics that were specifically changed in the new metadata will override the characteristics of the base metadata. Некоторые характеристики, такие как DefaultValue, заменяются, если они указаны в новых метаданных.Some characteristics such as DefaultValue are replaced if specified in the new metadata. Другие, например PropertyChangedCallback, объединяются.Others, such as PropertyChangedCallback, are combined. В конечном итоге, поведение слияния зависит от типа метаданных свойства, используемого для переопределения, поэтому описанное здесь поведение предназначено для существующих классов метаданных свойств, используемых WPFWPF свойствами зависимостей.Ultimately, the merge behavior depends on the property metadata type being used for the override, so the behavior described here is for the existing property metadata classes used by WPFWPF dependency properties. Дополнительные сведения см. в разделе метаданные свойств зависимостей и метаданные свойств платформы.For details, see Dependency Property Metadata and Framework Property Metadata.

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Предоставляет альтернативные метаданные для свойства зависимостей, доступного только для чтения, когда оно присутствует в экземплярах указанного типа, переопределяя метаданные, предоставленные при первоначальной регистрации свойства зависимостей.Supplies alternate metadata for a read-only dependency property when it is present on instances of a specified type, overriding the metadata that was provided in the initial dependency property registration. Вы должны передать DependencyPropertyKey для свойства зависимостей, доступного только для чтения, чтобы избежать возникновения исключения.You must pass the DependencyPropertyKey for the read-only dependency property to avoid raising an exception.

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

Тип, где это свойство зависимостей наследуется и где будут применены указанные альтернативные метаданные.The type where this dependency property is inherited and where the provided alternate metadata will be applied.

typeMetadata
PropertyMetadata

Метаданные для применения к свойству зависимостей в переопределяемом типе.The metadata to apply to the dependency property on the overriding type.

key
DependencyPropertyKey

Ключ доступа для свойства зависимостей, доступного только для чтения.The access key for a read-only dependency property.

Комментарии

Эта сигнатура предоставляет базовую реализацию для метода идентификатора свойства зависимости (DependencyPropertyKey), доступного только для чтения.This signature provides underlying implementation for a read-only dependency property identifier (DependencyPropertyKey) method. При переопределении метаданных для свойства зависимости, доступного для чтения и записи, используйте OverrideMetadata(Type, PropertyMetadata).If overriding metadata for a read-write dependency property, use OverrideMetadata(Type, PropertyMetadata).

Метаданные свойств зависимостей должны быть переопределены до того, как система свойств будет использовать свойство зависимостей.Dependency property metadata should be overridden before the property system uses the dependency property. Это соответствует времени создания конкретных объектов для класса, который регистрирует свойство зависимостей.This equates to the time that specific objects are created for the class that registers the dependency property. Вызовы OverrideMetadata должны выполняться только в статических конструкторах типа, который предоставляет себя как параметр forType данного метода или с помощью аналогичного экземпляра.Calls to OverrideMetadata should only be performed within the static constructors of the type that provides itself as the forType parameter of this method, or through similar instantiation. Попытка изменить метаданные после существования экземпляров типа owner не вызовет исключения, но приведет к несовместимости поведения в системе свойств.Attempting to change metadata after instances of the owner type exist will not raise exceptions, but will result in inconsistent behaviors in the property system.

После того как метаданные определенного производного класса устанавливаются с помощью этого метода, последующие попытки переопределения метаданных в этом же производном классе вызовут исключение.After metadata for a particular derived class override is established with this method, subsequent attempts to override metadata on this same derived class will raise an exception.

Переданные метаданные объединяются с метаданными свойств для свойства зависимостей в том виде, в котором они существуют в базовом владельце.The supplied metadata is merged with the property metadata for the dependency property as it exists on the base owner. Все характеристики, заданные в исходных базовых метаданных, сохраняются. только те характеристики, которые были изменены в новых метаданных, будут переопределять характеристики базовых метаданных.Any characteristics that were specified in the original base metadata will persist; only those characteristics that were specifically changed in the new metadata will override the characteristics of the base metadata. Некоторые характеристики, такие как DefaultValue, заменяются, если они указаны в новых метаданных.Some characteristics such as DefaultValue are replaced if specified in the new metadata. Другие, например PropertyChangedCallback, объединяются.Others, such as PropertyChangedCallback, are combined. Поведение слияния зависит от типа метаданных свойства, используемого для переопределения.The merge behavior depends on the property metadata type being used for the override. Дополнительные сведения см. в разделе метаданные свойств зависимостей и метаданные свойств платформы.For details, see Dependency Property Metadata and Framework Property Metadata.

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