次の方法で共有


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 でもかまいません。

戻り値

Object

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

注釈

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

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

重要

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

適用対象