BindingBase.ProvideValue(IServiceProvider) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.