BindingBase.ProvideValue(IServiceProvider) Method

Definition

Devuelve un objeto que se debe establecer en la propiedad donde se aplican este enlace y esta extensión.Returns an object that should be set on the property where this binding and extension are applied.

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

Parameters

serviceProvider
IServiceProvider

Objeto que puede proporcionar servicios para la extensión de marcado.The object that can provide services for the markup extension. Puede ser null.May be null;

Returns

Object

Valor que se va a establecer en la propiedad de destino del enlace.The value to set on the binding target property.

Remarks

Esta implementación proporciona la compatibilidad con la sintaxis básica para el enlace a través de Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) para todas las clases derivadas prácticas proporcionadas (Binding, PriorityBindingy MultiBinding).This implementation provides the base syntax support for binding through Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) for all provided practical derived classes (Binding, PriorityBinding, and MultiBinding).

Se espera que la implementación de la clase BindingBase de este método devuelva un objeto Expression que sea el resultado de un enlace.The BindingBase class implementation of this method is expected to return an expression object that is the result of a binding. El enlace de una propiedad funciona al establecer como destino una DependencyProperty determinada en un DependencyObjectdeterminado.Binding a property works by targeting a given DependencyProperty on a given DependencyObject. Estos dos fragmentos de información se transmiten mediante la consulta de una implementación de IProvideValueTarget en el serviceProvider, que el WPFWPF XAMLXAML lector pone a disposición durante el análisis de un enlace.These two pieces of information are transmitted by querying for an IProvideValueTarget implementation on the serviceProvider, which the WPFWPF XAMLXAML reader makes available during parsing of a binding. Esta implementación de clase base es responsable de comprobar si hay un DependencyProperty válido y DependencyObject.This base class implementation is responsible for checking for a valid DependencyProperty and DependencyObject. Si se encuentran, la implementación real de que devuelve una expresión de enlace recae en varias clases derivadas, tal y como se implementa haciendo que la clase base llame a un método abstracto interno.If these are found, the actual implementation of returning a binding expression falls to various derived classes, as implemented by having the base class call an internal abstract method. De lo contrario, la extensión devuelve el propio objeto de enlace.Otherwise, the extension returns the binding object itself. Devolver el propio enlace produce un error de falta de coincidencia de tipos, pero no debería producirse en circunstancias normales.Returning the binding itself results in a type mismatch error, but this should not occur under normal circumstances.

Important

Dado que la sintaxis para el enlace a través de XAMLXAML tal y como se implementa en este método se basa en la implementación de una invalidación interna, y dado que BindingBase.ProvideValue es Sealed, una clase de enlace personalizada que deriva de BindingBase no funcionará correctamente como una extensión de marcado XAMLXAML.Because the syntax for binding through XAMLXAML as implemented in this method relies on implementing an internal override, and because BindingBase.ProvideValue itself is sealed, a custom binding class that derives from BindingBase will not function correctly as a XAMLXAML markup extension.

Applies to