BindingBase.ProvideValue(IServiceProvider) Método

Definición

Devuelve un objeto que se debe establecer en la propiedad donde se aplican este enlace y esta 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 del enlace.

Comentarios

Esta implementación proporciona compatibilidad con la sintaxis base para el enlace mediante lenguaje xaml (Extensible Application Markup Language) para todas las clases derivadas prácticas proporcionadas (Binding, PriorityBindingy MultiBinding).

Se espera que la BindingBase implementación de la clase de este método devuelva un objeto de expresión que es el resultado de un enlace. El enlace de una propiedad funciona estableciendo como destino un determinado DependencyProperty en un determinado DependencyObject. Estos dos fragmentos de información se transmiten consultando una IProvideValueTarget implementación en , serviceProviderque 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 pertenece a varias clases derivadas, 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 como se implementa en este método se basa en la implementación de una invalidación interna y, dado BindingBase.ProvideValue que se ha sellado, una clase de enlace personalizada que deriva de BindingBase no funcionará correctamente como una extensión de marcado XAML.

Se aplica a