DependencyProperty.ReadOnly Propriété

Définition

Obtient une valeur qui indique si la propriété de dépendance identifié par cette instance DependencyProperty est une propriété de dépendance en lecture seule.

public:
 property bool ReadOnly { bool get(); };
public bool ReadOnly { get; }
member this.ReadOnly : bool
Public ReadOnly Property ReadOnly As Boolean

Valeur de propriété

Boolean

true si la propriété de dépendance est en lecture seule ; sinon, false.

Exemples

L’exemple suivant obtient les métadonnées par défaut et les propriétés d’identificateur de propriété de dépendance à partir de différents champs de propriété de dépendance et utilise les informations pour remplir une table pour implémenter un « navigateur de métadonnées ».

pm = dp.GetMetadata(dp.OwnerType);
MetadataClass.Text = pm.GetType().Name;
TypeofPropertyValue.Text = dp.PropertyType.Name;
DefaultPropertyValue.Text = (pm.DefaultValue!=null) ? pm.DefaultValue.ToString() : "null";
HasCoerceValue.Text = (pm.CoerceValueCallback == null) ? "No" : pm.CoerceValueCallback.Method.Name;
HasPropertyChanged.Text = (pm.PropertyChangedCallback == null) ? "No" : pm.PropertyChangedCallback.Method.Name;
ReadOnly.Text = (dp.ReadOnly) ? "Yes" : "No";
pm = dp.GetMetadata(dp.OwnerType)
MetadataClass.Text = pm.GetType().Name
TypeofPropertyValue.Text = dp.PropertyType.Name
DefaultPropertyValue.Text = If((pm.DefaultValue IsNot Nothing), pm.DefaultValue.ToString(), "null")
HasCoerceValue.Text = If((pm.CoerceValueCallback Is Nothing), "No", pm.CoerceValueCallback.Method.Name)
HasPropertyChanged.Text = If((pm.PropertyChangedCallback Is Nothing), "No", pm.PropertyChangedCallback.Method.Name)
    [ReadOnly].Text = If((dp.ReadOnly), "Yes", "No")

Remarques

Les propriétés de dépendance en lecture seule sont inscrites dans le système de propriétés en appelant la RegisterReadOnly méthode par opposition à la Register méthode. Les propriétés jointes peuvent également être inscrites en lecture seule ; voir RegisterAttachedReadOnly.

Les propriétés de dépendance en lecture seule nécessitent un DependencyPropertyKey identificateur plutôt qu’un DependencyProperty identificateur pour effectuer des opérations de métadonnées telles que la substitution des métadonnées ou la définition de la valeur. Si vous avez obtenu une collection d’identificateurs par le biais d’un appel à GetLocalValueEnumerator ou d’une autre API qui expose des identificateurs, vérifiez la ReadOnly valeur avant d’essayer d’appeler SetValue ou OverrideMetadata d’utiliser cet identificateur de DependencyProperty propriété de dépendance comme paramètre d’entrée, pour vérifier que la propriété de dépendance que l’identificateur représente n’est pas en lecture seule. Si la valeur est sur une propriété de ReadOnly true dépendance, il n’existe aucun moyen programmatique d’obtenir une référence à l’identificateur DependencyPropertyKey de cette propriété de dépendance, à partir des métadonnées ou de l’identificateur DependencyProperty ; l’identificateur doit être disponible en tant que champ statique afin d’appeler SetValue(DependencyPropertyKey, Object) une propriété de dépendance en lecture seule.

Lorsque vous créez une propriété de dépendance personnalisée et que vous l’inscrivez en lecture seule, vous devez définir uniquement un accesseur get pour la propriété wrapper CLR. Sinon, votre classe aura un modèle objet déroutant pour le wrapper de propriété par rapport à l’accès à la propriété de dépendance de stockage. Pour plus d’informations, consultez Propriétés de dépendance personnalisées ou Propriétés de dépendance en lecture seule.

S’applique à

Voir aussi