Partage via


PropertyMetadata Classe

Définition

Définit les aspects de comportement d’une propriété de dépendance, y compris les conditions avec lesquelles elle a été inscrite. Pour plus d’informations sur l’utilisation de PropertyMetadata pour les propriétés de dépendance, consultez Propriétés de dépendance personnalisées.

/// [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
Héritage
Object IInspectable PropertyMetadata
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Cet exemple appelle le constructeur PropertyMetadata(Object), qui crée un PropertyMetadata qui signale une valeur par défaut pour un DependencyProperty. PropertyMetadata est ensuite utilisé pour une inscription de propriété jointe lorsque RegisterAttached est appelé.

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

Remarques

La définition d’un instance PropertyMetadata fait partie du scénario de définition d’une propriété de dépendance personnalisée. Pour obtenir des informations et des exemples, consultez Propriétés de dépendance personnalisées.

Une valeur PropertyMetadata représente deux aspects du comportement des propriétés de dépendance :

  • Fournit une valeur par défaut, qui est utilisée comme valeur de la propriété, sauf si le type de propriétaire initialise spécifiquement la valeur, ou si la valeur est définie par le code utilisateur ou d’autres mécanismes.
  • Fait référence à un rappel appelé si le système de propriétés de dépendance détecte que la propriété de dépendance a changé. En règle générale, une propriété de dépendance a uniquement besoin d’une valeur PropertyMetadata si l’un de ces comportements ou les deux sont souhaités. Sinon, une valeur null peut être passée pour le paramètre propertyMetadata lorsqu’une propriété de dépendance est inscrite auprès du système de propriétés de dépendance. Pour plus d’informations, consultez DependencyProperty.Register.

Si votre PropertyMetadata inclut une référence de rappel modifiée par une propriété, cette méthode doit être une méthode statique de la classe qui expose l’identificateur DependencyProperty où cette propriété Est appliquée. La procédure d’écriture de cette méthode est décrite dans Propriétés de dépendance personnalisées , ainsi que la rubrique de référence pour le délégué PropertyChangedCallback .

Notes

Une fois créée, une instance PropertyMetadata n’a pas de propriété qui peut être utilisée pour rechercher le rappel ou même pour déterminer le nom de la méthode du rappel. Ces informations sont considérées comme un détail d’implémentation d’une propriété de dépendance et seul le système de propriétés de dépendance lui-même doit être en mesure d’appeler cette méthode.

Instanciation d’une valeur PropertyMetadata

Il existe deux méthodes qui peuvent instancier un instance PropertyMetadata : un constructeur et une méthode PropertyMetadata.Create statique. Chacune de ces méthodes a plusieurs signatures. Il est plus courant d’utiliser les constructeurs. Toutefois, vous devez utiliser PropertyMetadata.Create si vous souhaitez que le mécanisme de valeur par défaut de votre propriété de dépendance soit thread-safe. Pour plus d’informations, consultez la section « Métadonnées de propriété pour une propriété de dépendance personnalisée » de la rubrique Propriétés de dépendance personnalisées .

Constructeurs

PropertyMetadata(Object)

Initialise une nouvelle instance de la classe PropertyMetadata, à l’aide d’une valeur de propriété par défaut.

PropertyMetadata(Object, PropertyChangedCallback)

Initialise une nouvelle instance de la classe PropertyMetadata, à l’aide d’une valeur par défaut de propriété et d’une référence de rappel.

Propriétés

CreateDefaultValueCallback

Obtient une référence à la méthode de rappel qui fournit une valeur de propriété par défaut.

DefaultValue

Obtient la valeur par défaut de la propriété de dépendance.

Méthodes

Create(CreateDefaultValueCallback)

Crée une valeur PropertyMetadata , en spécifiant un rappel qui établit une valeur par défaut pour une propriété de dépendance.

Create(CreateDefaultValueCallback, PropertyChangedCallback)

Crée une valeur PropertyMetadata , en spécifiant un rappel qui établit une valeur par défaut pour une propriété de dépendance et un rappel de propriété modifiée.

Create(Object)

Crée une valeur PropertyMetadata , en spécifiant une valeur par défaut fixe pour une propriété de dépendance.

Create(Object, PropertyChangedCallback)

Crée une valeur PropertyMetadata , en spécifiant une valeur par défaut fixe pour une propriété de dépendance et un rappel de propriété modifiée.

S’applique à

Voir aussi