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 zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance.
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
Parameter
Der Bezeichner der Abhängigkeitseigenschaft der Eigenschaft, die für die Benachrichtigung über Eigenschaftsänderungen registriert werden soll.
- callback
- DependencyPropertyChangedCallback
Ein Rückruf, der auf dem DependencyPropertyChangedCallback-Delegaten basiert, den das System aufruft, wenn sich der Wert der angegebenen Eigenschaft ändert.
Gibt zurück
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 auf Änderungen an der Tag-Eigenschaft in einem TextBlock zu lauschen.
<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 Benachrichtigungen zu Eigenschaftenänderungen 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-Frameworkereignis vorhanden ist, das Änderungen nachverfolgt. Beispielsweise ist FrameworkElement.Tag eine vorhandene XAML-Framework-Abhängigkeitseigenschaft, und Ihre App könnte nachverfolgen, wann sich der Wert dieser Eigenschaft ändert, da eine externe Eingabe (z. B. eine Datenbindung) den Laufzeitwert dieser Eigenschaft für ein bestimmtes Objekt geändert hat instance, das Teil der App-Benutzeroberfläche ist.
Um die Registrierung des Rückrufs aufzuheben, rufen Sie UnregisterPropertyChangedCallback auf, und übergeben Sie das von dieser Methode zurückgegebene Token.
In der Regel verwenden Sie RegisterPropertyChangedCallback nicht für Benachrichtigungen für eine benutzerdefinierte Abhängigkeitseigenschaft, da benutzerdefinierte Abhängigkeitseigenschaften bereits eine Möglichkeit haben, einen Handler mit geänderter Eigenschaft zu registrieren, der mehr Daten in den Ereignisargumenten bereitstellt. Weitere Informationen finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften.