Compartilhar via


DependencyObject.RegisterPropertyChangedCallback Método

Definição

Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nesta instância dependencyObject .

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

Parâmetros

dp
DependencyProperty

O identificador de propriedade de dependência da propriedade a ser registrada para notificação alterada pela propriedade.

callback
DependencyPropertyChangedCallback

Um retorno de chamada baseado no delegado DependencyPropertyChangedCallback , que o sistema invoca quando o valor da propriedade especificada é alterado.

Retornos

Int64

long long

Um token que representa o retorno de chamada, usado para identificar o retorno de chamada em chamadas para UnregisterPropertyChangedCallback.

Exemplos

Este exemplo mostra como usar um delegado DependencyPropertyChangedCallback para escutar alterações na propriedade Tag em um TextBlock.

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

Comentários

Use RegisterPropertyChangedCallback para obter uma notificação alterada de propriedade para propriedades de dependência que já estão definidas como parte da estrutura XAML. Isso é útil para propriedades em que eram ainda não é um evento de estrutura XAML correspondente que acompanha as alterações. Por exemplo, FrameworkElement.Tag é uma propriedade de dependência de estrutura XAML existente e seu aplicativo pode acompanhar quando o valor dessa propriedade é alterado porque algumas entradas externas (como uma associação de dados) alteraram o valor de runtime dessa propriedade em uma instância de objeto específica que faz parte da interface do usuário do aplicativo.

Para cancelar o registro do retorno de chamada, chame UnregisterPropertyChangedCallback e passe o token retornado por esse método.

Normalmente, você não usa RegisterPropertyChangedCallback para notificações em uma propriedade de dependência personalizada, pois as propriedades de dependência personalizadas já têm uma maneira de registrar um manipulador alterado pela propriedade que fornece mais dados nos args de evento. Para saber mais, consulte Propriedades de dependência personalizada.

Aplica-se a

Confira também