Compartilhar via


BindingBase.ProvideValue(IServiceProvider) Método

Definição

Retorna um objeto que deve ser definido na propriedade em que essa associação e extensão são aplicadas.

public:
 override System::Object ^ ProvideValue(IServiceProvider ^ serviceProvider);
public override sealed object ProvideValue (IServiceProvider serviceProvider);
override this.ProvideValue : IServiceProvider -> obj
Public Overrides NotOverridable Function ProvideValue (serviceProvider As IServiceProvider) As Object

Parâmetros

serviceProvider
IServiceProvider

O objeto que pode fornecer serviços para a extensão de marcação. Pode ser null.

Retornos

O valor a definir na propriedade do destino de associação.

Comentários

Essa implementação fornece o suporte à sintaxe base para associação por meio de XAML (Extensible Application Markup Language) para todas as classes derivadas práticas fornecidas (Binding, PriorityBindinge MultiBinding).

Espera-se BindingBase que a implementação de classe desse método retorne um objeto de expressão que é o resultado de uma associação. A associação de uma propriedade funciona direcionando um determinado DependencyProperty em um determinado DependencyObject. Essas duas informações são transmitidas consultando uma IProvideValueTarget implementação no serviceProvider, que o leitor XAML do WPF disponibiliza durante a análise de uma associação. Essa implementação de classe base é responsável por verificar se há um válido DependencyProperty e DependencyObject. Se forem encontrados, a implementação real do retorno de uma expressão de associação se enquadra em várias classes derivadas, conforme implementado fazendo com que a classe base chame um método abstrato interno. Caso contrário, a extensão retornará o próprio objeto de associação. Retornar a associação em si resulta em um erro de incompatibilidade de tipo, mas isso não deve ocorrer em circunstâncias normais.

Importante

Como a sintaxe para associação por meio de XAML, conforme implementado neste método, depende da implementação de uma substituição interna e, como BindingBase.ProvideValue ela está selada, uma classe de associação personalizada derivada de BindingBase não funcionará corretamente como uma extensão de marcação XAML.

Aplica-se a