PropertyMetadata Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- Atributos
Ejemplos
En este ejemplo se llama al constructor PropertyMetadata(Object) de 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 denull
para el parámetropropertyMetadata
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. |