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. Дополнительные сведения см. в разделе метаданных свойства зависимостей и метаданных свойств Framework.

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

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, объединяются. Поведение слияния зависит от типа метаданных свойства, используемого для переопределения. Дополнительные сведения см. в разделе метаданных свойства зависимостей и метаданных свойств Framework.

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