DependencyProperty.AddOwner Method

Definition

Adiciona outro tipo como um proprietário de uma propriedade de dependência que já foi registrado para um tipo.Adds another type as an owner of a dependency property that has already been registered to a type.

Overloads

AddOwner(Type)

Adiciona outro tipo como um proprietário de uma propriedade de dependência que já foi registrada.Adds another type as an owner of a dependency property that has already been registered.

AddOwner(Type, PropertyMetadata)

Adiciona outro tipo como um proprietário de uma propriedade de dependência que já foi registrada, fornecendo metadados de propriedade de dependência para a propriedade de dependência como ela existe no tipo do proprietário fornecido.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)

Adiciona outro tipo como um proprietário de uma propriedade de dependência que já foi registrada.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

Parameters

ownerType
Type

O tipo a ser adicionado como proprietário desta propriedade de dependência.The type to add as an owner of this dependency property.

Returns

DependencyProperty

Uma referência ao identificador DependencyProperty original que identifica a propriedade da dependência.A reference to the original DependencyProperty identifier that identifies the dependency property. Esse identificador deve ser exposto adicionando a classe como um campo public static readonly.This identifier should be exposed by the adding class as a public static readonly field.

Remarks

Esse método permite que o sistema de propriedades reconheça uma propriedade de dependência em um tipo que não registrou a propriedade de dependência específica inicialmente.This method enables the property system to recognize a dependency property on a type that did not register that particular dependency property initially.

Normalmente, AddOwner é usado para adicionar propriedades de dependência a classes que ainda não expõem essa propriedade de dependência por meio da herança de classe gerenciada (herança de classe faria com que as propriedades do wrapper fossem herdadas pela classe derivada e, portanto, forneceria Membros gerais – o acesso à tabela para a propriedade de dependência já).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 permite que o sistema de propriedades reconheça uma propriedade de dependência em um tipo que não registrou a propriedade de dependência inicialmente.AddOwner enables the property system to recognize a dependency property on a type that did not register that dependency property initially.

Essa assinatura não permite especificar metadados.This signature does not allow for specifying metadata. Quando você usa esse método, os metadados são gerados automaticamente para o novo DependencyProperty e seu tipo de proprietário.When you use this method, the metadata is automatically generated for the new DependencyProperty and its owner type. Os metadados gerados automaticamente são o resultado dos metadados mesclados de todos os tipos base que têm essa propriedade definida.The auto-generated metadata is the result of the merged metadata from all of the base types that have this property defined. Se nenhum metadado mesclado estiver disponível, os metadados padrão para a propriedade serão usados.If no merged metadata is available, then the default metadata for the property is used. Se a propriedade for registrada usando o método RegisterAttached, os metadados padrão serão os mesmos que os metadados que são criados quando RegisterAttached foi chamado.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. Caso contrário, o objeto PropertyMetadata é criado com a propriedade DefaultValue definida como o padrão do tipo de propriedade e todas as outras propriedades da PropertyMetadata são definidas como 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. Use a assinatura AddOwner(Type, PropertyMetadata) se desejar fornecer metadados para a versão da propriedade de dependência conforme adicionado ao tipo fornecido.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.

O valor de retorno desse método normalmente é usado para declarar e expor a propriedade de dependência armazenando um identificador de propriedade de dependência.The return value of this method is typically used to declare and expose the dependency property by storing a dependency property identifier. O identificador fornece acesso à propriedade de dependência se você quiser chamar as APIs do sistema de propriedades em relação à propriedade de dependência, particularmente como ela existe na classe de proprietário de adição.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. O mesmo nome de propriedade para o proprietário original e o proprietário adicionado deve ser usado para indicar a funcionalidade semelhante.The same property name for both original owner and added owner should be used to indicate the similar functionality. Você deve usar o DependencyProperty valor de retorno do método AddOwner para definir o identificador da propriedade de dependência e também para declarar CLRCLR wrappers de propriedade, para propriedades de dependência que são adicionadas aos tipos usando 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.

A metodologia de AddOwner recomendada acima é usada ao criar as propriedades de dependência declaradas em WPFWPF.The AddOwner methodology recommended above is used when creating the dependency properties that are declared within WPFWPF. Por exemplo, Border e Control definem uma propriedade de dependência BorderBrush, que tem funcionalidade semelhante.For instance, both Border and Control define a BorderBrush dependency property, which have similar functionality. Control define sua propriedade BorderBrush para o sistema de propriedades chamando AddOwner com base na Border de proprietário original e seu identificador de propriedade de dependência BorderBrushProperty registrado.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. O valor de retorno de AddOwner é usado para estabelecer um novo campo de DependencyProperty estático (BorderBrushProperty) para essa propriedade no proprietário adicionado, e um wrapper de propriedade de BorderBrush também é declarado.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)

Adiciona outro tipo como um proprietário de uma propriedade de dependência que já foi registrada, fornecendo metadados de propriedade de dependência para a propriedade de dependência como ela existe no tipo do proprietário fornecido.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

Parameters

ownerType
Type

O tipo a ser adicionado como proprietário desta propriedade de dependência.The type to add as owner of this dependency property.

typeMetadata
PropertyMetadata

Os metadados que qualificam a propriedade de dependência como ela existe no tipo fornecido.The metadata that qualifies the dependency property as it exists on the provided type.

Returns

DependencyProperty

Uma referência ao identificador DependencyProperty original que identifica a propriedade da dependência.A reference to the original DependencyProperty identifier that identifies the dependency property. Esse identificador deve ser exposto adicionando a classe como um campo public static readonly.This identifier should be exposed by the adding class as a public static readonly field.

Remarks

Esse método permite que o sistema de propriedades reconheça uma propriedade de dependência em um tipo que não registrou a propriedade de dependência específica inicialmente.This method enables the property system to recognize a dependency property on a type that did not register that particular dependency property initially.

O valor de retorno desse método é usado para declarar e expor a propriedade de dependência, principalmente como existe na classe de adição de proprietário.The return value of this method is used to declare and expose the dependency property, particularly as it exists on the adding owner class. Geralmente, o mesmo nome de propriedade para o proprietário original e o proprietário adicionado devem ser usados para indicar a funcionalidade semelhante.Generally, the same property name for both original owner and added owner should be used to indicate the similar functionality. É uma boa prática expor os identificadores, bem como novos wrappers de propriedades de CLRCLR, para propriedades de dependência que são adicionadas aos tipos usando 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.

A metodologia de AddOwner recomendada acima é usada ao criar APIs declaradas em WPFWPF.The AddOwner methodology recommended above is used when creating APIs declared within WPFWPF. Por exemplo, Border e Control definem uma propriedade de dependência BorderBrush, que tem funcionalidade semelhante.For instance, both Border and Control define a BorderBrush dependency property, which have similar functionality. Control define sua propriedade BorderBrush para o sistema de propriedades chamando AddOwner no Border de proprietário original e seu identificador de propriedade de dependência BorderBrushProperty registrado.Control defines its BorderBrush property to the property system by calling AddOwner on original owner Border and its registered BorderBrushProperty dependency property identifer. O valor de retorno de AddOwner é usado para estabelecer um campo de DependencyProperty estático (BorderBrushProperty) para essa propriedade no proprietário adicionado, e um wrapper de propriedade de BorderBrush também é declarado.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.

O identificador da propriedade de dependência do proprietário adicionado deve ser usado para operações como GetValue.The added owner's dependency property identifier should be used for operations such as GetValue. No entanto, operações específicas de tipo envolvendo os tipos ou instâncias da classe que foi adicionada como proprietário com metadados diferentes ainda retornarão os resultados esperados mesmo se o identificador de propriedade de dependência original (não o proprietário adicionado) for especificado em chamadas para métodos como GetValue ou 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. Os metadados para o proprietário adicionado são perpetuados pelo AddOwner chamar a si mesmo, não necessariamente referenciados exclusivamente pelo campo adicionando identificador de classe do proprietário.The metadata for the added owner is perpetuated by the AddOwner call itself, not necessarily referenced exclusively by the adding owner class identifier field. No entanto, é uma boa prática expor o identificador, bem como novos wrappers de propriedades de CLRCLR, para propriedades de dependência que são adicionadas aos tipos usando AddOwner, porque a falha ao fazer isso cria uma disparidade entre as representações CLRCLR e XAMLXAML de suas propriedades.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.

Os metadados fornecidos são mesclados com os metadados de propriedade da propriedade de dependência que existe no proprietário base.The supplied metadata is merged with the property metadata for the dependency property as it exists on the base owner. Todas as características que foram especificadas nos metadados base originais serão mantidas.Any characteristics that were specified in the original base metadata will persist. Somente as características que foram alteradas especificamente nos novos metadados substituirão as características dos metadados base.Only those characteristics that were specifically changed in the new metadata will override the characteristics of the base metadata. Algumas características, como DefaultValue, serão substituídas se forem especificadas nos novos metadados.Some characteristics, such as DefaultValue, are replaced if they are specified in the new metadata. Outros, como PropertyChangedCallback, são combinados.Others, such as PropertyChangedCallback, are combined. Por fim, o comportamento de mesclagem depende do tipo de metadados de propriedade usado para a substituição, portanto, o comportamento descrito aqui é para as classes de metadados de propriedade existentes usadas por WPFWPF Propriedades de dependência.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. Para obter detalhes, consulte metadados de propriedade de dependência e metadados de propriedade de estrutura.For details, see Dependency Property Metadata and Framework Property Metadata.

Applies to