DependencyObject.RegisterPropertyChangedCallback 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 DependencyObject instance 특정 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의 일부인 특정 개체 instance 해당 속성의 런타임 값을 변경했기 때문에 앱에서 해당 속성의 값이 변경되는 시기를 추적할 수 있습니다.
콜백을 등록 취소하려면 UnregisterPropertyChangedCallback 을 호출하고 이 메서드에서 반환된 토큰을 전달합니다.
사용자 지정 종속성 속성에는 이벤트 인수에 더 많은 데이터를 제공하는 속성 변경 처리기를 등록하는 방법이 이미 있으므로 일반적으로 사용자 지정 종속성 속성에 대한 알림에는 RegisterPropertyChangedCallback을 사용하지 않습니다. 자세한 내용은 사용자 지정 종속성 속성을 참조하세요.