DependencyProperty.AddOwner Метод

Определение

Добавляет другой тип в качестве владельца свойства зависимостей, который уже был зарегистрирован для типа.Adds another type as an owner of a dependency property that has already been registered to a type.

Перегрузки

AddOwner(Type)

Добавляет другой тип в качестве владельца свойства зависимостей, которое уже зарегистрировано.Adds another type as an owner of a dependency property that has already been registered.

AddOwner(Type, PropertyMetadata)

Добавляет другой тип в качестве владельца свойства зависимостей, который уже был зарегистрирован, предоставляя метаданные свойства зависимости для свойства зависимостей в том виде, в котором оно будет существовать в предоставленном типе владельца.Adds another type as an owner of a dependency property that has already been registered, providing dependency property metadata for the dependency property as it will exist on the provided owner type.

AddOwner(Type)

Добавляет другой тип в качестве владельца свойства зависимостей, которое уже зарегистрировано.Adds another type as an owner of a dependency property that has already been registered.

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

Тип для добавления в качестве владельца данного свойства зависимостей.The type to add as an owner of this dependency property.

Возвраты

Ссылка на исходный идентификатор DependencyProperty, который определяет свойство зависимостей.A reference to the original DependencyProperty identifier that identifies the dependency property. Этот идентификатор должен быть представлен путем добавления класса в качестве поля public static readonly.This identifier should be exposed by the adding class as a public static readonly field.

Комментарии

Этот метод позволяет системе свойств распознать свойство зависимостей для типа, который изначально не зарегистрировал это конкретное свойство зависимостей.This method enables the property system to recognize a dependency property on a type that did not register that particular dependency property initially.

Обычно AddOwner используется для добавления свойств зависимостей в классы, которые еще не предоставляют это свойство зависимостей через наследование управляемого класса (наследование класса приведет к тому, что свойства оболочки наследуются производным классом, и, таким образом, Предоставьте общие члены — доступ к таблицам для свойства зависимостей уже существует.Typically, AddOwner is used to add dependency properties to classes that do not already expose that dependency property through managed class inheritance (class inheritance would cause the wrapper properties to be inherited by the derived class, and thus would provide general members-table access to the dependency property already). AddOwner позволяет системе свойств распознать свойство зависимостей для типа, который не зарегистрировал это свойство зависимостей изначально.AddOwner enables the property system to recognize a dependency property on a type that did not register that dependency property initially.

Эта подпись не позволяет указывать метаданные.This signature does not allow for specifying metadata. При использовании этого метода метаданные создаются автоматически для нового DependencyProperty и типа владельца.When you use this method, the metadata is automatically generated for the new DependencyProperty and its owner type. Автоматически созданные метаданные являются результатом Объединенных метаданных из всех базовых типов, для которых определено это свойство.The auto-generated metadata is the result of the merged metadata from all of the base types that have this property defined. Если объединенные метаданные недоступны, используются метаданные по умолчанию для свойства.If no merged metadata is available, then the default metadata for the property is used. Если свойство зарегистрировано с помощью метода RegisterAttached, то метаданные по умолчанию совпадают с метаданными, созданными при вызове RegisterAttached.If the property is registered by using the RegisterAttached method, then the default metadata is the same as the metadata that is created when RegisterAttached was called. В противном случае создается объект PropertyMetadata со свойством DefaultValue, для которого задано значение по умолчанию для типа свойства, а всем остальным свойствам PropertyMetadata присваивается значение null.Otherwise, the PropertyMetadata object is created with the DefaultValue property set to the property type's default and all other properties of the PropertyMetadata is set to null. Используйте сигнатуру AddOwner(Type, PropertyMetadata), если хотите предоставить метаданные для версии свойства зависимостей в соответствии с добавлением в предоставленный тип.Use the AddOwner(Type, PropertyMetadata) signature if you want to provide metadata for the version of the dependency property as added to the provided type.

Возвращаемое значение этого метода обычно используется для объявления и предоставления свойства зависимостей путем сохранения идентификатора свойства зависимости.The return value of this method is typically used to declare and expose the dependency property by storing a dependency property identifier. Идентификатор предоставляет доступ к свойству зависимостей, если требуется вызывать API системы свойств для свойства зависимостей, особенно в том случае, если оно существует в классе добавления владельца.The identifier provides access to the dependency property if you want to call property system APIs against the dependency property, particularly as it exists on the adding owner class. Для указания аналогичной функциональности следует использовать одно и то же имя свойства для исходного владельца и добавленного владельца.The same property name for both original owner and added owner should be used to indicate the similar functionality. Следует использовать DependencyProperty возвращаемое значение метода AddOwner, чтобы определить идентификатор свойства зависимости, а также объявить CLRCLR оболочки свойств для свойств зависимостей, которые добавляются в типы с помощью AddOwner.You should use the DependencyProperty return value of the AddOwner method to define the dependency property identifier, and also to declare CLRCLR property wrappers, for dependency properties that are added to types using AddOwner.

Описанная выше методика AddOwner используется при создании свойств зависимостей, объявленных в WPFWPF.The AddOwner methodology recommended above is used when creating the dependency properties that are declared within WPFWPF. Например, Border и Control определяют свойство зависимости BorderBrush, которое имеет аналогичные функции.For instance, both Border and Control define a BorderBrush dependency property, which have similar functionality. Control определяет свойство BorderBrush для системы свойств путем вызова AddOwner на основе исходного Border владельца и зарегистрированного BorderBrushProperty идентификатора свойства зависимостей.Control defines its BorderBrush property to the property system by calling AddOwner based on the original owner Border and its registered BorderBrushProperty dependency property identifer. Возвращаемое значение AddOwner используется для установления нового статического поля DependencyProperty (BorderBrushProperty) для этого свойства добавленного владельца, а также объявление оболочки свойства BorderBrush.The AddOwner return value is then used to establish a new static DependencyProperty field (BorderBrushProperty) for that property on the added owner, and a BorderBrush property wrapper is also declared.

AddOwner(Type, PropertyMetadata)

Добавляет другой тип в качестве владельца свойства зависимостей, который уже был зарегистрирован, предоставляя метаданные свойства зависимости для свойства зависимостей в том виде, в котором оно будет существовать в предоставленном типе владельца.Adds another type as an owner of a dependency property that has already been registered, providing dependency property metadata for the dependency property as it will exist on the provided owner type.

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

Тип для добавления в качестве владельца данного свойства зависимостей.The type to add as owner of this dependency property.

typeMetadata
PropertyMetadata

Метаданные, квалифицирующие свойство зависимостей в том виде, в котором оно существует в указанном типе.The metadata that qualifies the dependency property as it exists on the provided type.

Возвраты

Ссылка на исходный идентификатор DependencyProperty, который определяет свойство зависимостей.A reference to the original DependencyProperty identifier that identifies the dependency property. Этот идентификатор должен быть представлен путем добавления класса в качестве поля public static readonly.This identifier should be exposed by the adding class as a public static readonly field.

Комментарии

Этот метод позволяет системе свойств распознать свойство зависимостей для типа, который изначально не зарегистрировал это конкретное свойство зависимостей.This method enables the property system to recognize a dependency property on a type that did not register that particular dependency property initially.

Возвращаемое значение этого метода используется для объявления и предоставления свойства зависимостей, особенно в том случае, если оно существует в классе добавления владельца.The return value of this method is used to declare and expose the dependency property, particularly as it exists on the adding owner class. Как правило, для указания аналогичной функциональности следует использовать одно и то же имя свойства для исходного владельца и добавленного владельца.Generally, the same property name for both original owner and added owner should be used to indicate the similar functionality. Рекомендуется предоставлять идентификаторы, а также новые CLRCLRные оболочки свойств для свойств зависимостей, которые добавляются в типы с помощью AddOwner.It is good practice to expose the identifiers, as well as new CLRCLR property wrappers, for dependency properties that are added to types using AddOwner.

Описанная выше методика AddOwner используется при создании API, объявленных в WPFWPF.The AddOwner methodology recommended above is used when creating APIs declared within WPFWPF. Например, Border и Control определяют свойство зависимости BorderBrush, которое имеет аналогичные функции.For instance, both Border and Control define a BorderBrush dependency property, which have similar functionality. Control определяет свойство BorderBrush для системы свойств, вызывая AddOwner в исходном Border владельца и зарегистрированный идентификатор свойства BorderBrushProperty зависимостей.Control defines its BorderBrush property to the property system by calling AddOwner on original owner Border and its registered BorderBrushProperty dependency property identifer. Возвращаемое значение AddOwner используется для установки статического поля DependencyProperty (BorderBrushProperty) для этого свойства добавленного владельца, а также объявление оболочки свойства BorderBrush.The AddOwner return value is then used to establish a static DependencyProperty field (BorderBrushProperty) for that property on the added owner, and a BorderBrush property wrapper is also declared.

Идентификатор свойства зависимостей добавленного владельца следует использовать для таких операций, как GetValue.The added owner's dependency property identifier should be used for operations such as GetValue. Однако операции с определенными типами, включающие либо типы, либо экземпляры класса, добавленного в качестве владельца с разными метаданными, по-прежнему будут возвращать ожидаемые результаты, даже если в параметре не указан исходный идентификатор свойства зависимостей (не добавленного владельца). вызывает методы, такие как GetValue или GetMetadata.However, type-specific operations involving either types or instances of the class that was added as owner with different metadata will still return the expected results even if the original (not the added owner's) dependency property identifier is specified in calls to methods such as GetValue or GetMetadata. Метаданные для добавленного владельца сохраняются с помощью AddOwner вызове самого себя, а не обязательно ссылаться только на поле идентификатора класса, добавленного владельцем.The metadata for the added owner is perpetuated by the AddOwner call itself, not necessarily referenced exclusively by the adding owner class identifier field. Тем не менее, рекомендуется предоставлять идентификатор, а также новые оболочки свойств CLRCLR для свойств зависимостей, которые добавляются к типам с помощью AddOwner, так как при этом происходит несоответствие между CLRCLR и XAMLXAML представления свойств.Nevertheless, it is good practice to expose the identifier, as well as new CLRCLR property wrappers, for dependency properties that are added to types using AddOwner, because failing to do so creates disparity between the CLRCLR and XAMLXAML representations of your properties.

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

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