DependencyProperty.UnsetValue Propriété
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.
Spécifie une valeur statique 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 n’importe quel 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é
Valeur sentinelle pour une valeur non définie.
Exemples
Cet exemple vérifie 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é plutôt que null, car null il s’agit d’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 DefaultValue des métadonnées de propriété. C’est peut-être
null. - Une autre valeur a été établie par priorité de valeur (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 si spécifiquement défini, cela peut encore être
null. Pour plus d’informations sur la priorité des valeurs, consultez la 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.
Note
N’inscrivez pas de propriété de dépendance avec la valeur par défaut de UnsetValue. Cela sera déroutant pour les consommateurs de biens et aura des conséquences inattendues dans le système de propriété.
UnsetValue doit être retourné à partir d’une implémentation IValueConverter qui fournit une conversion dans une liaison de données vers une 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. Ils s’affichent en tant qu’exceptions d’exécution que vous devrez ajouter de la gestion dans UnhandledException ou pire encore 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 pas null la 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.