BindingBase.ProvideValue(IServiceProvider) メソッド

定義

このバインディングと拡張機能が適用されるプロパティに設定する必要があるオブジェクトを返します。

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

マークアップ拡張機能のサービスを提供できるオブジェクト。 null でもかまいません。

返品

バインディング ターゲット プロパティに設定する値。

注釈

この実装では、提供されるすべての実用的な派生クラス (BindingPriorityBinding、および MultiBinding) に対して、Extensible Application Markup Language (XAML) を介したバインドの基本構文サポートを提供します。

このメソッドの BindingBase クラスの実装は、バインディングの結果である式オブジェクトを返す必要があります。 プロパティのバインドは、特定のDependencyPropertyで特定のDependencyObjectをターゲットにすることによって機能します。 この 2 つの情報は、IProvideValueTargetserviceProvider 実装を照会することによって送信されます。これは、WPF XAML リーダーがバインディングの解析中に使用できるようにします。 この基底クラスの実装は、有効な DependencyPropertyDependencyObjectをチェックする役割を担います。 これらが見つかった場合、バインド式を返す実際の実装は、基底クラスが内部抽象メソッドを呼び出すことによって実装されるさまざまな派生クラスに当たります。 それ以外の場合、拡張機能はバインド オブジェクト自体を返します。 バインディング自体を返した場合、型の不一致エラーが発生しますが、通常の状況では発生しません。

Important

このメソッドで実装されている XAML によるバインドの構文は内部オーバーライドの実装に依存するため、 BindingBase.ProvideValue 自体はシールされているため、 BindingBase から派生したカスタム バインド クラスは XAML マークアップ拡張機能として正しく機能しません。

適用対象