BindingBase.ProvideValue(IServiceProvider) メソッド

定義

このバインディングおよび拡張機能の適用先のプロパティに設定されるオブジェクトを返します。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

パラメーター

serviceProvider
IServiceProvider

マークアップ拡張機能のサービスを提供できるオブジェクト。The object that can provide services for the markup extension. null である可能性があります。May be null;

戻り値

バインディング ターゲット プロパティに設定する値。The value to set on the binding target property.

注釈

この実装は、指定されたすべてのExtensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)実用的な派生クラス (BindingPriorityBinding、およびMultiBinding) に対してバインディングを行うための基本構文をサポートします。This implementation provides the base syntax support for binding through Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) for all provided practical derived classes (Binding, PriorityBinding, and MultiBinding).

このBindingBaseメソッドのクラス実装は、バインディングの結果である式オブジェクトを返すことが想定されています。The BindingBase class implementation of this method is expected to return an expression object that is the result of a binding. プロパティのバインドは、特定DependencyProperty DependencyObjectので指定されたを対象とすることによって機能します。Binding a property works by targeting a given DependencyProperty on a given DependencyObject. この2つのIProvideValueTarget情報は、のserviceProvider実装を照会することによって送信WPFWPFされます。これは、バインディングの解析中にリーダーがXAMLXAML使用できるようにします。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. この基本クラスの実装は、有効DependencyPropertyなおよびDependencyObjectを確認する役割を担います。This base class implementation is responsible for checking for a valid DependencyProperty and DependencyObject. これらが見つかった場合は、基底クラスが内部抽象メソッドを呼び出すことによって実装されているように、バインディング式を返す実際の実装がさまざまな派生クラスに分類されます。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. それ以外の場合、拡張機能はバインドオブジェクト自体を返します。Otherwise, the extension returns the binding object itself. バインディング自体を返すと、型の不一致エラーが発生しますが、通常の状況では発生しません。Returning the binding itself results in a type mismatch error, but this should not occur under normal circumstances.

重要

このメソッドに実装されXAMLXAMLているとしてのバインディングの構文は、内部オーバーライドのBindingBase.ProvideValue実装に依存します。また、それ自体がBindingBaseシールされているため、から派生するカスタムバインドクラスは、次のように正しく機能しません。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.

適用対象