DependencyObject.RegisterPropertyChangedCallback Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Registriert eine Benachrichtigungsfunktion, um Änderungen an einer bestimmten DependencyProperty für diese DependencyObject-Instanz zu überwachen.
public:
virtual long long RegisterPropertyChangedCallback(DependencyProperty ^ dp, DependencyPropertyChangedCallback ^ callback) = RegisterPropertyChangedCallback;
public long RegisterPropertyChangedCallback(DependencyProperty dp, DependencyPropertyChangedCallback callback);
function registerPropertyChangedCallback(dp, callback)
Public Function RegisterPropertyChangedCallback (dp As DependencyProperty, callback As DependencyPropertyChangedCallback) As Long
Parameter
Der Bezeichner der Abhängigkeitseigenschaft der Eigenschaft, die für die Benachrichtigung über Eigenschaftsänderung registriert werden soll.
- callback
- DependencyPropertyChangedCallback
Ein Rückruf basierend auf dem DependencyPropertyChangedCallback-Delegaten , der vom System aufgerufen wird, wenn sich der Wert der angegebenen Eigenschaft ändert.
Gibt zurück
long long
Ein Token, das den Rückruf darstellt, der verwendet wird, um den Rückruf in Aufrufen von UnregisterPropertyChangedCallback zu identifizieren.
Beispiele
In diesem Beispiel wird gezeigt, wie Sie einen DependencyPropertyChangedCallback-Delegaten verwenden, um änderungen an der Tag-Eigenschaft in einem TextBlock zu überwachen.
<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));
}
}
Hinweise
Verwenden Sie RegisterPropertyChangedCallback, um eigenschaftsänderungsbenachrichtigungen für Abhängigkeitseigenschaften abzurufen, die bereits als Teil des XAML-Frameworks definiert sind. Dies ist nützlich für Eigenschaften, bei denen noch kein entsprechendes XAML-Framework-Ereignis vorhanden ist, das Änderungen nachverfolgt. Beispiel: "FrameworkElement.Tag " ist eine vorhandene ABHÄNGIGKEITseigenschaft des XAML-Frameworks, und Ihre App kann nachverfolgen, wann sich der Wert dieser Eigenschaft ändert, da einige externe Eingaben (z. B. eine Datenbindung) den Laufzeitwert dieser Eigenschaft für eine bestimmte Objektinstanz geändert haben, die Teil der App-UI ist.
Um die Registrierung des Rückrufs aufzuheben, rufen Sie UnregisterPropertyChangedCallback auf, und übergeben Sie das von dieser Methode zurückgegebene Token.
Sie verwenden RegisterPropertyChangedCallback in der Regel nicht für Benachrichtigungen für eine benutzerdefinierte Abhängigkeitseigenschaft, da benutzerdefinierte Abhängigkeitseigenschaften bereits eine Möglichkeit zum Registrieren eines eigenschaftsänderungshandlers haben, der weitere Daten in den Ereignisargumenten bereitstellt. Weitere Informationen finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften.