BindingBase.ProvideValue(IServiceProvider) Método

Definición

Devuelve un objeto que se debe establecer en la propiedad donde se aplican este enlace y extensión.

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

Objeto que puede proporcionar servicios para la extensión de marcado. Puede ser NULL.

Devoluciones

Valor que se va a establecer en la propiedad de destino de enlace.

Comentarios

Esta implementación proporciona la compatibilidad con la sintaxis base para el enlace a través del lenguaje de marcado extensible de aplicaciones (XAML) para todas las clases derivadas prácticas proporcionadas (Binding, PriorityBinding, y MultiBinding).

Se BindingBase espera que la implementación de clase de este método devuelva un objeto de expresión que sea el resultado de un enlace. El enlace de una propiedad funciona estableciendo como destino un determinado DependencyProperty en un determinado DependencyObject. Estas dos partes de información se transmiten consultando una implementación de IProvideValueTarget en la serviceProvider, que el lector XAML de WPF pone a disposición durante el análisis de un enlace. Esta implementación de clase base es responsable de comprobar si hay un valor válido DependencyProperty y DependencyObject. Si se encuentran, la implementación real de devolver una expresión de enlace cae en varias clases derivadas, tal como se implementa al hacer que la clase base llame a un método abstracto interno. De lo contrario, la extensión devuelve el propio objeto de enlace. Si se devuelve el enlace, se produce un error de coincidencia de tipos, pero esto no debería producirse en circunstancias normales.

Importante

Dado que la sintaxis para enlazar a través de XAML tal como se implementa en este método se basa en la implementación de una invalidación interna y, dado BindingBase.ProvideValue que está sellada, una clase de enlace personalizada que deriva de BindingBase no funcionará correctamente como una extensión de marcado XAML.

Se aplica a