Partage via


DependencyObject.RegisterPropertyChangedCallback Méthode

Définition

Inscrit une fonction de notification pour écouter les modifications apportées à un DependencyProperty spécifique sur ce instance DependencyObject.

public:
 virtual long long RegisterPropertyChangedCallback(DependencyProperty ^ dp, DependencyPropertyChangedCallback ^ callback) = RegisterPropertyChangedCallback;
long RegisterPropertyChangedCallback(DependencyProperty const& dp, DependencyPropertyChangedCallback const& callback);
public long RegisterPropertyChangedCallback(DependencyProperty dp, DependencyPropertyChangedCallback callback);
function registerPropertyChangedCallback(dp, callback)
Public Function RegisterPropertyChangedCallback (dp As DependencyProperty, callback As DependencyPropertyChangedCallback) As Long

Paramètres

dp
DependencyProperty

Identificateur de propriété de dépendance de la propriété à inscrire pour la notification de modification de propriété.

callback
DependencyPropertyChangedCallback

Rappel basé sur le délégué DependencyPropertyChangedCallback , que le système appelle lorsque la valeur de la propriété spécifiée change.

Retours

Int64

long long

long

Jeton qui représente le rappel, utilisé pour identifier le rappel dans les appels à UnregisterPropertyChangedCallback.

Exemples

Cet exemple montre comment utiliser un délégué DependencyPropertyChangedCallback pour écouter les modifications apportées à la propriété Tag sur un TextBlock.

<TextBlock x:Name="textBlock1" Text="Hello, world"/>
long tagToken;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    tagToken = textBlock1.RegisterPropertyChangedCallback(TextBlock.TagProperty, tbTagChangedCallback);
    base.OnNavigatedTo(e);

    textBlock1.Tag = "name";
}

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    textBlock1.UnregisterPropertyChangedCallback(TextBlock.TagProperty, tagToken);
    base.OnNavigatedFrom(e);
}

private void tbTagChangedCallback(DependencyObject sender, DependencyProperty dp)
{
    if (dp == TextBlock.TagProperty)
    {
       // These lines produce the same result.
       System.Diagnostics.Debug.WriteLine("The tag has been set to " + ((TextBlock)sender).Tag);
       System.Diagnostics.Debug.WriteLine("The tag has been set to " + sender.GetValue(dp));
    }
}

Remarques

Utilisez RegisterPropertyChangedCallback pour obtenir une notification de modification de propriété pour les propriétés de dépendance qui sont déjà définies dans le cadre de l’infrastructure XAML. Cela est utile pour les propriétés où n’étaient pas déjà un événement d’infrastructure XAML correspondant qui effectue le suivi des modifications. Par exemple, FrameworkElement.Tag est une propriété de dépendance d’infrastructure XAML existante, et votre application peut suivre quand la valeur de cette propriété change, car une entrée externe (comme une liaison de données) a modifié la valeur d’exécution de cette propriété sur un objet particulier instance qui fait partie de l’interface utilisateur de votre application.

Pour annuler l’inscription du rappel, appelez UnregisterPropertyChangedCallback et transmettez le jeton retourné par cette méthode.

Vous n’utilisez généralement pas RegisterPropertyChangedCallback pour les notifications sur une propriété de dépendance personnalisée, car les propriétés de dépendance personnalisées ont déjà un moyen d’inscrire un gestionnaire modifié de propriété qui fournit plus de données dans les arguments d’événements. Pour plus d’informations, voir Propriétés de dépendance personnalisées.

S’applique à

Voir aussi