Share 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(Microsoft.UI.Xaml.WinUIContract, 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(Microsoft.UI.Xaml.WinUIContract), 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

Exemplos

Este exemplo chama o construtor PropertyMetadata(Object), que cria um PropertyMetadata que relata um valor padrão para dependencyProperty. Em PropertyMetadata seguida, 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);
    }
}

Comentários

Definir uma PropertyMetadata instância 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 PropertyMetadata valor 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 PropertyMetadata valor se um ou ambos os comportamentos forem desejados. Caso contrário, um valor de null pode ser passado para o propertyMetadata parâmetro quando uma propriedade de dependência é registrada com o sistema de propriedades de dependência. Para obter mais informações, consulte DependencyProperty.Register.

Se você 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 isso 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 PropertyMetadata instância 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 PropertyMetadata instância: 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