다음을 통해 공유


DependencyObject.RegisterPropertyChangedCallback 메서드

정의

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

매개 변수

dp
DependencyProperty

속성 변경 알림에 등록할 속성의 종속성 속성 식별자입니다.

callback
DependencyPropertyChangedCallback

지정된 속성의 값이 변경될 때 시스템에서 호출하는 DependencyPropertyChangedCallback 대리자를 기반으로 하는 콜백입니다.

반환

Int64

long 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의 일부인 특정 개체 instance 해당 속성의 런타임 값을 변경했기 때문에 앱에서 해당 속성의 값이 변경되는 시기를 추적할 수 있습니다.

콜백을 등록 취소하려면 UnregisterPropertyChangedCallback 을 호출하고 이 메서드에서 반환된 토큰을 전달합니다.

사용자 지정 종속성 속성에는 이벤트 인수에 더 많은 데이터를 제공하는 속성 변경 처리기를 등록하는 방법이 이미 있으므로 일반적으로 사용자 지정 종속성 속성에 대한 알림에는 RegisterPropertyChangedCallback을 사용하지 않습니다. 자세한 내용은 사용자 지정 종속성 속성을 참조하세요.

적용 대상

추가 정보