Compartir a través de


PropertyMetadata Clase

Definición

Define los aspectos de comportamiento de una propiedad de dependencia, incluidas las condiciones con las que se registró. Para obtener más información sobre cómo se usa PropertyMetadata para las propiedades de dependencia, consulte Propiedades de dependencia 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
Herencia
Object IInspectable PropertyMetadata
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

En este ejemplo se llama al constructor PropertyMetadata(Object), que crea un PropertyMetadata que informa de un valor predeterminado para dependencyProperty. A continuación, se usa PropertyMetadata para un registro de propiedades adjunta cuando se llama a RegisterAttached .

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

Comentarios

Definir una instancia propertyMetadata forma parte del escenario para definir una propiedad de dependencia personalizada. Para obtener información y ejemplos, consulte Propiedades de dependencia personalizadas.

Un valor PropertyMetadata representa dos aspectos del comportamiento de la propiedad de dependencia:

  • Proporciona un valor predeterminado, que se usa como valor de la propiedad, a menos que el tipo de propietario inicialice específicamente el valor, o el valor se establece mediante código de usuario u otros mecanismos.
  • Hace referencia a una devolución de llamada que se invoca si el sistema de propiedades de dependencia detecta que la propiedad de dependencia ha cambiado. Normalmente, una propiedad de dependencia solo necesita un valor PropertyMetadata si se desea uno o ambos comportamientos. De lo contrario, se puede pasar un valor null para el parámetro propertyMetadata cuando se registra una propiedad de dependencia con el sistema de propiedades de dependencia. Para obtener más información, consulta DependencyProperty.Register.

Si PropertyMetadata incluye una referencia de devolución de llamada modificada por la propiedad, ese método debe ser un método estático de la clase que expone el identificador DependencyProperty donde se aplica PropertyMetadata. Cómo escribir este método se describe en Propiedades de dependencia personalizadas y también en el tema de referencia del delegado PropertyChangedCallback .

Nota:

Una vez creada, una instancia propertyMetadata no tiene una propiedad que se puede usar para buscar la devolución de llamada o incluso para determinar el nombre del método de la devolución de llamada. Esa información se considera un detalle de implementación de una propiedad de dependencia y solo el propio sistema de propiedades de dependencia debe poder invocar ese método.

Creación de instancias de un valor PropertyMetadata

Hay dos métodos que pueden crear instancias de una instancia de PropertyMetadata: un constructor y un método PropertyMetadata.Create estático. Cada uno de estos métodos tiene varias firmas. Es más común usar los constructores. Sin embargo, debe usar PropertyMetadata.Create si desea que el mecanismo de valor predeterminado de la propiedad de dependencia sea seguro para subprocesos. Para obtener más información, consulte la sección "Metadatos de propiedad para una propiedad de dependencia personalizada" del tema Propiedades de dependencia personalizadas .

Constructores

PropertyMetadata(Object)

Inicializa una nueva instancia de la clase PropertyMetadata con un valor predeterminado de propiedad.

PropertyMetadata(Object, PropertyChangedCallback)

Inicializa una nueva instancia de la clase PropertyMetadata , utilizando un valor predeterminado de propiedad y una referencia de devolución de llamada.

Propiedades

CreateDefaultValueCallback

Obtiene una referencia al método de devolución de llamada que proporciona un valor de propiedad predeterminado.

DefaultValue

Obtiene el valor predeterminado de la propiedad de dependencia.

Métodos

Create(CreateDefaultValueCallback)

Crea un valor PropertyMetadata , especificando una devolución de llamada que establece un valor predeterminado para una propiedad de dependencia.

Create(CreateDefaultValueCallback, PropertyChangedCallback)

Crea un valor PropertyMetadata , especificando una devolución de llamada que establece un valor predeterminado para una propiedad de dependencia y una devolución de llamada modificada por propiedades.

Create(Object)

Crea un valor PropertyMetadata , especificando un valor predeterminado fijo para una propiedad de dependencia.

Create(Object, PropertyChangedCallback)

Crea un valor PropertyMetadata , especificando un valor predeterminado fijo para una propiedad de dependencia y una devolución de llamada modificada por propiedades.

Se aplica a

Consulte también