Comment implémenter une propriété de dépendance (WPF .NET)
Cet article explique comment implémenter une propriété de dépendance à l’aide d’un DependencyProperty champ pour sauvegarder une propriété CLR (Common Language Runtime). Les propriétés de dépendance prennent en charge plusieurs fonctionnalités avancées du système de propriétés WPF (Windows Presentation Foundation). Ces fonctionnalités incluent les styles, la liaison de données, l’héritage, l’animation et les valeurs par défaut. Si vous souhaitez que les propriétés que vous définissez pour prendre en charge ces fonctionnalités, implémentez vos propriétés en tant que propriété de dépendance.
Exemple
L’exemple suivant montre comment inscrire une propriété de dépendance en appelant la Register méthode. La Register
méthode retourne une DependencyProperty instance appelée identificateur de propriété de dépendance. L’identificateur est stocké dans un static readonly
champ et contient le nom et les caractéristiques d’une propriété de dépendance.
Le champ d’identificateur doit suivre la convention <property name>Property
d’affectation de noms . Par exemple, si vous inscrivez une propriété de dépendance avec le nom Location
, le champ d’identificateur doit être nommé LocationProperty
. Si vous ne suivez pas ce modèle de nommage, les concepteurs WPF peuvent ne pas signaler correctement votre propriété, et les aspects de l’application de style système de propriétés peuvent ne pas se comporter comme prévu.
Dans l’exemple suivant, le nom de la propriété de dépendance et son accesseur CLR sont HasFish
: le champ d’identificateur est donc nommé HasFishProperty
. Le type de propriété de dépendance est Boolean et le type propriétaire qui inscrit la propriété de dépendance est Aquarium
.
Vous pouvez spécifier des métadonnées par défaut pour une propriété de dépendance. Cet exemple montre comment définir une valeur par défaut pour la HasFish
propriété de false
dépendance.
public class Aquarium : DependencyObject
{
public static readonly DependencyProperty HasFishProperty =
DependencyProperty.Register(
name: "HasFish",
propertyType: typeof(bool),
ownerType: typeof(Aquarium),
typeMetadata: new FrameworkPropertyMetadata(defaultValue: false));
public bool HasFish
{
get => (bool)GetValue(HasFishProperty);
set => SetValue(HasFishProperty, value);
}
}
Public Class Aquarium
Inherits DependencyObject
Public Shared ReadOnly HasFishProperty As DependencyProperty =
DependencyProperty.Register(
name:="HasFish",
propertyType:=GetType(Boolean),
ownerType:=GetType(Aquarium),
typeMetadata:=New FrameworkPropertyMetadata(defaultValue:=False))
Public Property HasFish As Boolean
Get
Return GetValue(HasFishProperty)
End Get
Set(value As Boolean)
SetValue(HasFishProperty, value)
End Set
End Property
End Class
Pour plus d’informations sur la façon et la raison d’implémenter une propriété de dépendance, plutôt que de sauvegarder une propriété CLR avec un champ privé, consultez la vue d’ensemble des propriétés de dépendance.
Voir aussi
.NET Desktop feedback