DependencyProperty.AddOwner Método

Definição

Adiciona outro tipo como proprietário de uma propriedade de dependência que já foi registada num tipo.

Sobrecargas

Name Description
AddOwner(Type)

Adiciona outro tipo como proprietário de uma propriedade de dependência que já foi registada.

AddOwner(Type, PropertyMetadata)

Adiciona outro tipo como proprietário de uma propriedade de dependência que já foi registada, fornecendo metadados da propriedade de dependência para a propriedade de dependência conforme esta existirá no tipo de proprietário fornecido.

AddOwner(Type)

Adiciona outro tipo como proprietário de uma propriedade de dependência que já foi registada.

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

Parâmetros

ownerType
Type

O tipo a adicionar como proprietário desta propriedade de dependência.

Devoluções

Uma referência ao identificador original DependencyProperty que identifica a propriedade de dependência. Este identificador deve ser exposto pela classe de adição como um public static readonly campo.

Observações

Este método permite ao sistema de propriedades reconhecer uma propriedade de dependência num tipo que inicialmente não registou essa propriedade de dependência.

Normalmente, AddOwner é usado para adicionar propriedades de dependência a classes que ainda não expõem essa propriedade de dependência através da herança de classes gerida (a herança de classe faria com que as propriedades do wrapper fossem herdadas pela classe derivada, proporcionando assim acesso geral à propriedade de dependência por tabela de membros). AddOwner permite ao sistema de propriedades reconhecer uma propriedade de dependência num tipo que inicialmente não registou essa propriedade de dependência.

Esta assinatura não permite especificar metadados. Quando utiliza este método, os metadados são gerados automaticamente para o novo DependencyProperty tipo e para o seu tipo proprietário. Os metadados gerados automaticamente são o resultado da fusão dos metadados de todos os tipos base que têm esta propriedade definida. Se não houver metadados fundidos disponíveis, então os metadados predefinidos da propriedade são utilizados. Se a propriedade for registada usando o RegisterAttached método, então os metadados predefinidos são os mesmos que os metadados criados quando RegisterAttached foram chamados. Caso contrário, o PropertyMetadata objeto é criado com a DefaultValue propriedade definida para o padrão do tipo de propriedade e todas as outras propriedades do PropertyMetadata são definidas para null. Use a AddOwner(Type, PropertyMetadata) assinatura se quiser fornecer metadados para a versão da propriedade de dependência adicionada ao tipo fornecido.

O valor de retorno deste método é tipicamente usado para declarar e expor a propriedade de dependência, armazenando um identificador de propriedade de dependência. O identificador dá acesso à propriedade de dependência caso queira chamar APIs de sistema de propriedades contra a propriedade de dependência, especialmente porque existe na classe proprietária adicional. O mesmo nome da propriedade para o proprietário original e o proprietário adicionado deve ser usado para indicar a funcionalidade semelhante. Deve usar o DependencyProperty valor de retorno do AddOwner método para definir o identificador de propriedade de dependência, e também para declarar wrappers de propriedades CLR, para propriedades de dependência que são adicionadas a tipos usando AddOwner.

A metodologia AddOwner recomendada acima é utilizada ao criar as propriedades de dependência declaradas dentro de WPF. Por exemplo, tanto Border como Control definem uma BorderBrush propriedade de dependência, que têm funcionalidades semelhantes. Control define a sua BorderBrush propriedade ao sistema de propriedades chamando AddOwner com base no proprietário Border original e no seu identificador de propriedade de dependência registado BorderBrushProperty . O AddOwner valor de retorno é então usado para estabelecer um novo campo estático DependencyProperty (BorderBrushProperty) para essa propriedade no proprietário adicionado, e também é declarado um BorderBrush wrapper de propriedade.

Aplica-se a

AddOwner(Type, PropertyMetadata)

Adiciona outro tipo como proprietário de uma propriedade de dependência que já foi registada, fornecendo metadados da propriedade de dependência para a propriedade de dependência conforme esta existirá no tipo de proprietário fornecido.

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

Parâmetros

ownerType
Type

O tipo a adicionar como proprietário desta propriedade de dependência.

typeMetadata
PropertyMetadata

Os metadados que qualificam a propriedade de dependência tal como ela existe no tipo fornecido.

Devoluções

Uma referência ao identificador original DependencyProperty que identifica a propriedade de dependência. Este identificador deve ser exposto pela classe de adição como um public static readonly campo.

Observações

Este método permite ao sistema de propriedades reconhecer uma propriedade de dependência num tipo que inicialmente não registou essa propriedade de dependência.

O valor de retorno deste método é usado para declarar e expor a propriedade de dependência, particularmente tal como existe na classe proprietária adicional. Geralmente, o mesmo nome de propriedade para o proprietário original e o proprietário adicionado deve ser usado para indicar a funcionalidade semelhante. É boa prática expor os identificadores, bem como novos wrappers de propriedades CLR, para propriedades de dependência que são adicionadas aos tipos usando AddOwner.

A metodologia AddOwner recomendada acima é utilizada ao criar APIs declaradas dentro de WPF. Por exemplo, tanto Border como Control definem uma BorderBrush propriedade de dependência, que têm funcionalidades semelhantes. Control define a sua BorderBrush propriedade ao sistema de propriedades apelando AddOwner ao proprietário Border original e ao seu identificador de propriedade de dependência registado BorderBrushProperty . O AddOwner valor de retorno é então usado para estabelecer um campo estático DependencyProperty (BorderBrushProperty) para essa propriedade no proprietário adicionado, e também é declarado um BorderBrush wrapper de propriedade.

O identificador de propriedade de dependência do proprietário adicionado deve ser usado para operações como GetValue. No entanto, operações específicas de tipo envolvendo tipos ou instâncias da classe adicionadas como proprietários com metadados diferentes continuarão a devolver os resultados esperados. Isto é verdade mesmo que o identificador de propriedade de dependência original (não do proprietário adicionado) seja especificado em chamadas a métodos como GetValue ou GetMetadata. Os metadados para o proprietário adicionado são perpetuados pela AddOwner própria chamada, não necessariamente referenciados exclusivamente pelo campo do identificador da classe proprietário adicional. No entanto, é boa prática expor o identificador, bem como novos wrappers de propriedades CLR, para propriedades de dependência que são adicionadas a tipos usando AddOwner, porque não o fazer cria disparidade entre as representações CLR e XAML das suas propriedades.

Os metadados fornecidos são fundidos com os metadados da propriedade da dependência conforme esta existe no proprietário da base. Quaisquer características especificadas nos metadados base originais persistirão. Apenas as características que foram especificamente alteradas nos novos metadados irão sobrepor-se às características dos metadados base. Algumas características, como DefaultValue, são substituídas se forem especificadas nos novos metadados. Outros, como PropertyChangedCallback, são combinados. Em última análise, o comportamento de fusão depende do tipo de metadados de propriedade usado para a substituição, pelo que o comportamento descrito aqui é para as classes de metadados existentes usadas pelas propriedades de dependência do WPF. Para mais detalhes, veja Metadados de Propriedades de Dependência e Metadados de Propriedades do Quadro.

Aplica-se a