DependencyPropertyChangedEventArgs 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.
Fournit des données pour une implémentation PropertyChangedCallback appelée lorsqu’une propriété de dépendance modifie sa valeur. Fournit également des données d’événement pour l’événement Control.IsEnabledChanged et tout autre événement qui utilise le délégué DependencyPropertyChangedEventHandler .
public ref class DependencyPropertyChangedEventArgs sealed
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class DependencyPropertyChangedEventArgs final
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class DependencyPropertyChangedEventArgs
Public NotInheritable Class DependencyPropertyChangedEventArgs
- Héritage
- Attributs
Exemples
Cet exemple montre une implémentation PropertyChangedCallback qui utilise les données d’événement DependencyPropertyChangedEventArgs . En particulier, il utilise NewValue pour définir une propriété associée, qui affiche la valeur numeric DependencyProperty sous-jacente en tant que texte, dans une partie TextBlock d’un contrôle composite.
private static void ValueChangedCallback(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
NumericUpDown ctl = (NumericUpDown)obj;
Int32 newValue = (Int32)args.NewValue;
// Update the TextElement to the new value.
if (ctl.TextElement != null)
{
ctl.TextElement.Text = newValue.ToString();
}
Remarques
DependencyPropertyChangedEventArgs fournit des données pour deux situations différentes qui impliquent des modifications apportées aux valeurs de propriété de dépendance :
- Informations de rappel situationnelles utilisées par un PropertyChangedCallback pour une propriété de dépendance personnalisée. C’est le cas le plus courant.
- Données d’événement pour un événement basé sur DependencyPropertyChangedEventHandler. Cela est moins courant, car le seul événement Windows Runtime qui utilise ce délégué est l’événement Control.IsEnabledChanged. Pour plus d’informations sur l’utilisation des
DependencyPropertyChangedEventArgsdonnées d’événement dans ce cas, consultezDependencyPropertyChangedEventHandlerouControl.IsEnabledChanged.
Une implémentation PropertyChangedCallback est une partie facultative des métadonnées de propriété que vous fournissez lorsque vous inscrivez une propriété de dépendance. Le rappel est appelé par le système de propriétés de dépendance en interne. Pour plus d’informations sur les propriétés de dépendance en général, consultez la vue d’ensemble des propriétés de dépendance personnalisées et des propriétés de dépendance.
En règle générale, vous définissez la méthode avec un accès privé ou interne. La méthode doit être statique. Étant donné que la méthode est statique, le paramètre DependencyObject (d) du délégué PropertyChangedCallback est important. C’est ce qui identifie l’instance d’objet de dépendance spécifique où la propriété change. Pour de nombreuses opérations, telles que la correction ou la corécisation d’une valeur, ou la modification d’une autre valeur de propriété calculée en réponse sur le même objet, vous référencerez ceci DependencyObject. Vous souhaiterez généralement le caster en type propriétaire de la propriété qui change. Le type de propriétaire est le type référencé par nom dans l’appel DependencyProperty.Register ; les métadonnées auxquelles vous PropertyChangedCallback êtes affecté aux métadonnées de propriété font partie de ce même appel.
Tenez compte de la possibilité de récursivité. Si vous modifiez la valeur d’une propriété de dépendance pour laquelle PropertyChangedCallback est appelé, elle sera appelée à nouveau. Par exemple, si vous avez créé un rappel pour une Double propriété où le rappel a toujours divisé la valeur par 2, ce rappel serait appelé de manière récursive et votre application se trouverait dans une boucle infinie.
Il est légal d’avoir deux propriétés de dépendance ou plus différentes définissent des rappels pour les changer les uns les autres, mais veillez à nouveau à ne pas créer une dépendance circulaire involontaire qui n’autorise pas la stabilisation des valeurs.
Un PropertyChangedCallback est appelé uniquement si OldValue et NewValue dans les données d’événement sont différents.
OldValue et NewValue ne sont pas typés, donc toute comparaison que vous effectuez nécessite probablement un cast. De nombreuses valeurs de propriété de dépendance utilisent un type valeur, ce qui signifie que vous allez compter sur les opérateurs ou d’autres API du type valeur pour effectuer les comparaisons. Cette fonctionnalité est généralement disponible sur la structure qui représente une valeur, en tant qu’API utilitaire. Par exemple, l’API utilitaire spécifique au langage sur une valeur d’épaisseur vous permet de comparer des Thickness valeurs.
Note
Si vous programmez en C++, quelques-unes des structures Windows Runtime ne prennent pas en charge les membres non-data. Par conséquent, ne prennent pas en charge les opérateurs ou d'autres utilitaires. Pour cela, il existe une classe complémentaire Helper qui fournit une API de comparaison que le code C++ peut utiliser. Par exemple, utilisez la classe ColorHelper pour comparer les valeurs Color .
Utilisation de DependencyPropertyChangedEventArgs pour un événement personnalisé
Un implémenteur de contrôle personnalisé peut envisager d’utiliser DependencyPropertyChangedEventHandler comme type de délégué si un événement personnalisé est déclenché suite à une modification de valeur de propriété de dépendance. Vous ne pouvez déclencher un tel événement que dans le contexte d’un PropertyChangedCallback. Cela est dû au fait que la valeur qui a changé (la propriété, l’ancienne et la nouvelle valeur) doit se trouver dans celle DependencyPropertyChangedEventArgs signalée pour l’événement au niveau du système de propriétés. Mais il n’y a pas de constructeur pour DependencyPropertyChangedEventArgs et aucune de ses propriétés n’est settable, donc la seule façon d’obtenir une DependencyPropertyChangedEventArgs valeur consiste à l’obtenir à partir des paramètres d’origine PropertyChangedCallback et à le transmettre lorsque vous déclenchez votre événement personnalisé.
Propriétés
| Nom | Description |
|---|---|
| NewValue |
Obtient la valeur de la propriété de dépendance après la modification signalée. |
| OldValue |
Obtient la valeur de la propriété de dépendance avant la modification signalée. |
| Property |
Obtient l’identificateur de la propriété de dépendance où la modification de la valeur s’est produite. |