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;
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 Benachrichtigungen mit Änderung der Eigenschaft registriert werden soll.
- callback
- DependencyPropertyChangedCallback
Ein Rückruf basierend auf dem DependencyPropertyChangedCallback-Delegat , den das System aufruft, wenn sich der Wert der angegebenen Eigenschaft ändert.
Gibt zurück
long long
Ein Token, das den Rückruf darstellt, der zum Identifizieren des Rückrufs in Aufrufen von UnregisterPropertyChangedCallback verwendet wird.
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 war, das Änderungen nachverfolgt. Beispielsweise ist FrameworkElement.Tag eine vorhandene XAML-Frameworkabhä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 instance geändert hat, das Teil Ihrer 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.
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 Handlers mit geänderter Eigenschaft haben, der mehr Daten in den Ereignisargumenten bereitstellt. Weitere Informationen finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften.