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을 사용하지 않습니다. 자세한 내용은 사용자 지정 종속성 속성을 참조하세요.
적용 대상
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기