DependencyObject.RegisterPropertyChangedCallback Méthode
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.
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
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
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.