Compartilhar via


PropertyMetadata Classe

Definição

Define aspectos de comportamento de uma propriedade de dependência, incluindo condições com as quais ela foi registrada. Para obter mais informações sobre como PropertyMetadata é usado para propriedades de dependência, consulte Propriedades de dependência personalizadas.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertyMetadata
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class PropertyMetadata
Public Class PropertyMetadata
Herança
Object IInspectable PropertyMetadata
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

Este exemplo chama o construtor PropertyMetadata(Object), que cria um PropertyMetadata que relata um valor padrão para uma DependencyProperty. O PropertyMetadata é então usado para um registro de propriedade anexado quando RegisterAttached é chamado.

public abstract class AquariumServices : DependencyObject
{
    public enum Buoyancy {Floats,Sinks,Drifts}

    public static readonly DependencyProperty BuoyancyProperty = DependencyProperty.RegisterAttached(
      "Buoyancy",
      typeof(Buoyancy),
      typeof(AquariumServices),
      new PropertyMetadata(Buoyancy.Floats)
    );
    public static void SetBuoyancy(DependencyObject element, Buoyancy value)
    {
        element.SetValue(BuoyancyProperty, value);
    }
    public static Buoyancy GetBuoyancy(DependencyObject element)
    {
        return (Buoyancy)element.GetValue(BuoyancyProperty);
    }
}
Public Class AquariumServices
    Inherits DependencyObject
    Public Enum Buoyancy
        Floats
        Sinks
        Drifts
    End Enum

    Public Shared ReadOnly BuoyancyProperty As DependencyProperty = _
          DependencyProperty.RegisterAttached(
          "Buoyancy", _
          GetType(Buoyancy), _
          GetType(AquariumServices), _
          New PropertyMetadata(Buoyancy.Floats))


    Public Sub SetBuoyancy(element As DependencyObject, value As Buoyancy)
        element.SetValue(BuoyancyProperty, value)
    End Sub
    Public Function GetBuoyancy(element As DependencyObject) As Buoyancy
        GetBuoyancy = CType(element.GetValue(BuoyancyProperty), Buoyancy)
    End Function
End Class

Comentários

Definir uma instância propertyMetadata faz parte do cenário para definir uma propriedade de dependência personalizada. Para obter informações e exemplos, consulte Propriedades de dependência personalizadas.

Um valor PropertyMetadata representa dois aspectos do comportamento da propriedade de dependência:

  • Fornece um valor padrão, que é usado como o valor da propriedade, a menos que o tipo de proprietário inicialize especificamente o valor ou o valor seja definido pelo código do usuário ou outros mecanismos.
  • Faz referência a um retorno de chamada invocado se o sistema de propriedades de dependência detectar que a propriedade de dependência foi alterada. Normalmente, uma propriedade de dependência só precisa de um valor PropertyMetadata se um ou ambos os comportamentos forem desejados. Caso contrário, um valor nulo pode ser passado para o parâmetro propertyMetadata quando uma propriedade de dependência é registrada com o sistema de propriedades de dependência. Para obter mais informações, consulte DependencyProperty.Register.

Se o PropertyMetadata incluir uma referência de retorno de chamada alterada pela propriedade, esse método deverá ser um método estático da classe que expõe o identificador DependencyProperty em que PropertyMetadata é aplicado. Como escrever esse método é descrito em Propriedades de dependência personalizadas e também no tópico de referência do delegado PropertyChangedCallback .

Observação

Depois de criada, uma instância PropertyMetadata não tem uma propriedade que pode ser usada para localizar o retorno de chamada ou até mesmo para determinar o nome do método do retorno de chamada. Essas informações são consideradas um detalhe de implementação de uma propriedade de dependência e apenas o próprio sistema de propriedades de dependência precisa ser capaz de invocar esse método.

Instanciando um valor PropertyMetadata

Há dois métodos que podem instanciar uma instância propertyMetadata: um construtor e um método PropertyMetadata.Create estático. Cada um desses métodos tem várias assinaturas. É mais comum usar os construtores. No entanto, você deve usar PropertyMetadata.Create se quiser que o mecanismo de valor padrão para sua propriedade de dependência seja thread-safe. Para obter mais informações, consulte a seção "Metadados de propriedade para uma propriedade de dependência personalizada" do tópico Propriedades de dependência personalizadas .

Construtores

PropertyMetadata(Object)

Inicializa uma nova instância da classe PropertyMetadata , usando um valor padrão de propriedade.

PropertyMetadata(Object, PropertyChangedCallback)

Inicializa uma nova instância da classe PropertyMetadata , usando um valor padrão de propriedade e uma referência de retorno de chamada.

Propriedades

CreateDefaultValueCallback

Obtém uma referência ao método de retorno de chamada que fornece um valor de propriedade padrão.

DefaultValue

Obtém o valor padrão para a propriedade de dependência.

Métodos

Create(CreateDefaultValueCallback)

Cria um valor PropertyMetadata , especificando um retorno de chamada que estabelece um valor padrão para uma propriedade de dependência.

Create(CreateDefaultValueCallback, PropertyChangedCallback)

Cria um valor PropertyMetadata , especificando um retorno de chamada que estabelece um valor padrão para uma propriedade de dependência e um retorno de chamada alterado pela propriedade.

Create(Object)

Cria um valor PropertyMetadata , especificando um valor padrão fixo para uma propriedade de dependência.

Create(Object, PropertyChangedCallback)

Cria um valor PropertyMetadata , especificando um valor padrão fixo para uma propriedade de dependência e um retorno de chamada alterado pela propriedade.

Aplica-se a

Confira também