PropertyMetadata Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 PropertyMetadata
des propriétés de dépendance, consultez Propriétés de dépendance personnalisées.
/// [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
- Héritage
- Attributs
Exemples
Cet exemple appelle le constructeur PropertyMetadata(Object), qui crée un PropertyMetadata
qui signale une valeur par défaut pour un DependencyProperty. Le 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);
}
}
Remarques
La définition d’un PropertyMetadata
instance 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 PropertyMetadata
valeur 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 n’a besoin d’une
PropertyMetadata
valeur que si l’un de ces comportements ou les deux sont souhaités. Sinon, une valeur de peut être passée pour lepropertyMetadata
paramètre lorsqu’une propriété denull
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ù elle PropertyMetadata
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 PropertyMetadata
instance 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 PropertyMetadata
instance : 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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour