DependencyObject.RegisterPropertyChangedCallback 方法

定義

註冊通知函式,以接聽此DependencyObject實例上特定DependencyProperty的變更。

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

參數

dp
DependencyProperty

要註冊屬性變更通知之屬性的相依性屬性識別碼。

callback
DependencyPropertyChangedCallback

DependencyPropertyChangedCallback 委派為基礎的回呼,系統會在指定的屬性值變更時叫用此委派。

傳回

Int64

long long

代表回呼的權杖,用來識別 UnregisterPropertyChangedCallback呼叫中的回呼。

範例

此範例示範如何使用DependencyPropertyChangedCallback委派來接聽TextBlockTag屬性的變更。

<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));
    }
}

備註

使用 RegisterPropertyChangedCallback 取得已定義為 XAML 架構一部分之相依性屬性的屬性變更通知。 這適用于尚未追蹤變更的對應 XAML 架構事件的屬性。 例如, FrameworkElement.Tag 是現有的 XAML 架構相依性屬性,而且您的應用程式可以在該屬性的值變更時追蹤,因為某些外部輸入 (像是資料系結) 在應用程式 UI 的特定物件實例上變更該屬性的運行時間值。

若要取消註冊回呼,請呼叫 UnregisterPropertyChangedCallback 並傳入此方法傳回的權杖。

您通常不會用於 RegisterPropertyChangedCallback 自訂相依性屬性上的通知,因為自訂相依性屬性已經有方法可註冊屬性變更的處理常式,以提供事件引數中更多資料。 如需詳細資訊,請參閱自訂相依性屬性

適用於

另請參閱