Share via


DependencyProperty.UnsetValue Propriété

Définition

Spécifie une valeur statique qui est utilisée par le système de propriétés plutôt que null pour indiquer que la propriété existe, mais qui n’a pas sa valeur définie par le système de propriétés ou par un code d’application.

public:
 static property Platform::Object ^ UnsetValue { Platform::Object ^ get(); };
static IInspectable UnsetValue();
public static object UnsetValue { get; }
var object = DependencyProperty.unsetValue;
Public Shared ReadOnly Property UnsetValue As Object

Valeur de propriété

Object

Platform::Object

IInspectable

Valeur sentinelle d’une valeur non définie.

Exemples

Cet exemple recherche une valeur locale existante avec ReadLocalValue. S’il existe une valeur locale, comme indiqué en ne retournant UnsetValuepas , la valeur locale existante est supprimée en appelant ClearValue.

public static bool ClearSetProperty(DependencyObject targetObject, DependencyProperty targetDP)
{
    if (targetObject == null || targetDP == null)
    {
        throw new ArgumentNullException();
    }
    object localValue = targetObject.ReadLocalValue(targetDP);
    if (localValue == DependencyProperty.UnsetValue)
    {
        return false;
    }
    else
    {
        targetObject.ClearValue(targetDP);
        return true;
    }
}

Remarques

UnsetValue est une valeur sentinelle utilisée pour les scénarios où le système de propriétés de dépendance ne peut pas déterminer une valeur de propriété de dépendance demandée. UnsetValue est utilisé au lieu de null, car null est une valeur de propriété valide pour la plupart des valeurs de type référence et est une Valeur DefaultValue fréquemment utilisée dans les métadonnées d’une propriété de dépendance.

UnsetValue n’est jamais retourné à partir d’un appel DependencyObject.GetValue . Lorsque vous appelez DependencyObject.GetValue pour une propriété de dépendance, l’une de ces conditions est toujours vraie :

  • Une propriété de dépendance a une valeur par défaut établie dans les métadonnées et cette valeur est retournée. Cette valeur peut provenir de la valeur DefaultValue des métadonnées de la propriété. Il peut s’agir de null.
  • Une autre valeur a été établie par le biais de la priorité des valeurs (par exemple, un style a été appliqué ou une liaison a été évaluée), et la valeur par défaut n’est plus pertinente. Même s’il est spécifiquement défini, il peut toujours s’agir de null. Pour plus d’informations sur la précédence des valeurs, consultez Vue d’ensemble des propriétés de dépendance.

DependencyObject.ReadLocalValue retourne UnsetValue lorsque la propriété demandée n’a pas été définie localement.

Notes

N’inscrivez pas de propriété de dépendance avec la valeur par défaut de UnsetValue. Cela prêtera à confusion pour les consommateurs de biens immobiliers et aura des conséquences inattendues au sein du système de propriété.

UnsetValue doit être retourné à partir d’une implémentation IValueConverter qui fournit la conversion dans une liaison de données en propriété de dépendance, dans tous les cas où le convertisseur ne peut pas convertir une valeur source. Les convertisseurs ne doivent pas lever d’exceptions pour ce cas dans IValueConverter.Convert. Elles apparaissent en tant qu’exceptions d’exécution pour lesquelles vous devez ajouter la gestion dans UnhandledException ou pire encore apparaissent pour les utilisateurs comme des exceptions d’exécution réelles. Les implémentations de convertisseur doivent suivre le modèle de liaison général que toute liaison ayant échoué ne fait rien et ne fournit pas de valeur, et UnsetValue non la null valeur sentinelle pour ce cas que le moteur de liaison comprend. Pour plus d’informations, voir Présentation détaillée de la liaison de données.

S’applique à

Voir aussi