DependencyProperty.AddOwner Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Добавляет другой тип в качестве владельца свойства зависимостей, который уже был зарегистрирован для типа.
Перегрузки
AddOwner(Type) |
Добавляет другой тип в качестве владельца свойства зависимостей, которое уже зарегистрировано. |
AddOwner(Type, PropertyMetadata) |
Добавляет другой тип в качестве владельца свойства зависимостей, который уже был зарегистрирован, предоставляя метаданные свойства зависимости для свойства зависимостей в том виде, в котором оно будет существовать в предоставленном типе владельца. |
AddOwner(Type)
Добавляет другой тип в качестве владельца свойства зависимостей, которое уже зарегистрировано.
public:
System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType);
public System.Windows.DependencyProperty AddOwner (Type ownerType);
member this.AddOwner : Type -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type) As DependencyProperty
Параметры
- ownerType
- Type
Тип для добавления в качестве владельца данного свойства зависимостей.
Возвращаемое значение
Ссылка на исходный идентификатор DependencyProperty, который определяет свойство зависимостей. Этот идентификатор должен быть представлен путем добавления класса в качестве поля public static readonly
.
Комментарии
Этот метод позволяет системе свойств распознавать свойство зависимостей для типа, который изначально не зарегистрировал это конкретное свойство зависимостей.
Как правило, используется для добавления свойств зависимостей в классы, AddOwner которые еще не предоставляют это свойство зависимостей через управляемое наследование классов (наследование классов приведет к наследованию свойств-оболочки производным классом и, таким образом, обеспечит общий доступ к таблице членов к свойству зависимостей уже). AddOwner позволяет системе свойств распознавать свойство зависимостей для типа, который изначально не зарегистрировал это свойство зависимостей.
Эта сигнатура не позволяет указывать метаданные. При использовании этого метода метаданные автоматически создаются для нового DependencyProperty и его типа владельца. Автоматически созданные метаданные являются результатом объединенных метаданных из всех базовых типов, для которых определено это свойство. Если объединенные метаданные недоступны, используются метаданные по умолчанию для свойства . Если свойство зарегистрировано с помощью RegisterAttached метода , метаданные по умолчанию совпадают с метаданными, созданными при RegisterAttached вызове. В противном случае объект создается со свойством DefaultValue , PropertyMetadata для свойства задано значение по умолчанию для типа свойства, а для всех остальных PropertyMetadata свойств — значение null
. Используйте сигнатуру AddOwner(Type, PropertyMetadata) , если вы хотите предоставить метаданные для версии свойства зависимости, добавленной к указанному типу.
Возвращаемое значение этого метода обычно используется для объявления и предоставления свойства зависимостей путем хранения идентификатора свойства зависимостей. Идентификатор предоставляет доступ к свойству зависимостей, если вы хотите вызвать системные API свойств для свойства зависимостей, особенно если оно существует в добавляемом классе владельца. Для обозначения аналогичной функциональности следует использовать одно и то же имя свойства как для исходного владельца, так и для добавленного владельца. Возвращаемое DependencyProperty значение метода следует использовать для определения идентификатора AddOwner свойства зависимостей, а также для объявления оболочек свойств CLR для свойств зависимостей, добавляемых в типы с помощью AddOwner.
Рекомендуемая AddOwner выше методология используется при создании свойств зависимостей, объявленных в WPF. Например, и BorderControl определяют BorderBrush
свойство зависимостей, которое имеет схожие функциональные возможности.
Control определяет свое BorderBrush
свойство для системы свойств путем вызова AddOwner на основе исходного владельца Border и зарегистрированного BorderBrushProperty идентификатора свойства зависимостей. Затем AddOwner возвращаемое значение используется для установки нового статического DependencyProperty поля (BorderBrushProperty) для этого свойства на добавленном владельце, и также объявляется оболочка BorderBrush
свойства.
Применяется к
AddOwner(Type, PropertyMetadata)
Добавляет другой тип в качестве владельца свойства зависимостей, который уже был зарегистрирован, предоставляя метаданные свойства зависимости для свойства зависимостей в том виде, в котором оно будет существовать в предоставленном типе владельца.
public:
System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public System.Windows.DependencyProperty AddOwner (Type ownerType, System.Windows.PropertyMetadata typeMetadata);
member this.AddOwner : Type * System.Windows.PropertyMetadata -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type, typeMetadata As PropertyMetadata) As DependencyProperty
Параметры
- ownerType
- Type
Тип для добавления в качестве владельца данного свойства зависимостей.
- typeMetadata
- PropertyMetadata
Метаданные, квалифицирующие свойство зависимостей в том виде, в котором оно существует в указанном типе.
Возвращаемое значение
Ссылка на исходный идентификатор DependencyProperty, который определяет свойство зависимостей. Этот идентификатор должен быть представлен путем добавления класса в качестве поля public static readonly
.
Комментарии
Этот метод позволяет системе свойств распознавать свойство зависимостей для типа, который изначально не зарегистрировал это конкретное свойство зависимостей.
Возвращаемое значение этого метода используется для объявления и предоставления свойства зависимостей, особенно в том случае, если оно существует в добавляемом классе владельца. Как правило, для обозначения аналогичной функциональности следует использовать одно и то же имя свойства как для исходного владельца, так и для добавленного владельца. Рекомендуется предоставлять идентификаторы, а также новые оболочки свойств CLR для свойств зависимостей, добавляемых в типы с помощью AddOwner.
Рекомендуемая AddOwner выше методология используется при создании API, объявленных в WPF. Например, и BorderControl определяют BorderBrush
свойство зависимостей, которое имеет схожие функциональные возможности.
Control определяет свое BorderBrush
свойство в системе свойств путем вызова AddOwner исходного владельца Border и зарегистрированного BorderBrushProperty идентификатора свойства зависимостей. Затем AddOwner возвращаемое значение используется для установки статического DependencyProperty поля (BorderBrushProperty) для этого свойства на добавленном владельце, и также объявляется оболочка BorderBrush
свойства.
Идентификатор свойства зависимостей добавленного владельца следует использовать для таких операций, как GetValue. Однако операции с конкретными типами, включающими типы или экземпляры класса, добавленные в качестве владельца с разными метаданными, по-прежнему возвращают ожидаемые результаты. Это верно, даже если исходный идентификатор свойства зависимостей (не добавленного владельца) указан в вызовах методов, таких как GetValue или GetMetadata. Метаданные для добавленного владельца увековечиваются самим вызовом AddOwner , а не обязательно ссылаться исключительно в поле идентификатора класса владельца. Тем не менее рекомендуется предоставлять идентификатор, а также новые оболочки свойств CLR для свойств зависимостей, добавляемых в типы с помощью AddOwner, так как в противном случае это приведет к различиям между представлениями свойств в среде CLR и XAML.
Предоставленные метаданные объединяются с метаданными свойства для свойства зависимостей, так как они существуют у базового владельца. Все характеристики, указанные в исходных базовых метаданных, сохраняются. Только те характеристики, которые были специально изменены в новых метаданных, будут переопределять характеристики базовых метаданных. Некоторые характеристики, например DefaultValue, заменяются, если они указаны в новых метаданных. Другие, например PropertyChangedCallback, объединяются. В конечном счете, поведение слияния зависит от типа метаданных свойства, используемого для переопределения, поэтому описанное здесь поведение предназначено для существующих классов метаданных свойств, используемых свойствами зависимостей WPF. Дополнительные сведения см. в разделах Метаданные свойства зависимостей и Метаданные свойства платформы.