DependencyObject.RegisterPropertyChangedCallback 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
註冊通知函式,以接聽此DependencyObject實例上特定DependencyProperty的變更。
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
參數
要註冊屬性變更通知之屬性的相依性屬性識別碼。
- callback
- DependencyPropertyChangedCallback
以 DependencyPropertyChangedCallback 委派為基礎的回呼,當指定屬性的值變更時,系統會叫用此委派。
傳回
表示回呼的權杖,用來識別 UnregisterPropertyChangedCallback呼叫中的回呼。
範例
此範例示範如何使用DependencyPropertyChangedCallback委派來接聽TextBlock上Tag屬性的變更。
<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,因為自訂相依性屬性已經有方法可以註冊屬性變更的處理常式,在事件引數中提供更多資料。 如需詳細資訊,請參閱自訂相依性屬性。