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(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
- 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. |