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(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
Herencia
Object IInspectable PropertyMetadata
Atributos

Ejemplos

En este ejemplo se llama al constructor PropertyMetadata(Object) de , que crea un que informa de un valor predeterminado para un DependencyProperty. A continuación, el PropertyMetadata se usa para un registro de propiedad 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);
    }
}

Comentarios

Definir una instancia de 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 de 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 bien 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 de PropertyMetadata si se desea uno o ambos comportamientos. De lo contrario, se puede pasar un valor de 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 el PropertyMetadata incluye una referencia de devolución de llamada modificada por propiedades, ese método debe ser un método estático de la clase que expone el identificador DependencyProperty donde se aplica esa PropertyMetadata. Cómo escribir este método se describe en propiedades de dependencia personalizadas y también el tema de referencia del delegado PropertyChangedCallback.

Nota

Una vez creada, una instancia de PropertyMetadata no tiene una propiedad que se pueda 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, PropertyChangedCallback)

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

PropertyMetadata(Object)

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

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, 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(CreateDefaultValueCallback)

Crea un valor PropertyMetadata, especificando una devolución de llamada que establece un valor predeterminado 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.

Create(Object)

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

Se aplica a

Consulte también