BindingBase.ProvideValue(IServiceProvider) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このバインディングと拡張機能が適用されるプロパティに設定する必要があるオブジェクトを返します。
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 でもかまいません。
返品
バインディング ターゲット プロパティに設定する値。
注釈
この実装では、提供されるすべての実用的な派生クラス (Binding、 PriorityBinding、および MultiBinding) に対して、Extensible Application Markup Language (XAML) を介したバインドの基本構文サポートを提供します。
このメソッドの BindingBase クラスの実装は、バインディングの結果である式オブジェクトを返す必要があります。 プロパティのバインドは、特定のDependencyPropertyで特定のDependencyObjectをターゲットにすることによって機能します。 この 2 つの情報は、IProvideValueTarget で serviceProvider 実装を照会することによって送信されます。これは、WPF XAML リーダーがバインディングの解析中に使用できるようにします。 この基底クラスの実装は、有効な DependencyProperty と DependencyObjectをチェックする役割を担います。 これらが見つかった場合、バインド式を返す実際の実装は、基底クラスが内部抽象メソッドを呼び出すことによって実装されるさまざまな派生クラスに当たります。 それ以外の場合、拡張機能はバインド オブジェクト自体を返します。 バインディング自体を返した場合、型の不一致エラーが発生しますが、通常の状況では発生しません。
Important
このメソッドで実装されている XAML によるバインドの構文は内部オーバーライドの実装に依存するため、 BindingBase.ProvideValue 自体はシールされているため、 BindingBase から派生したカスタム バインド クラスは XAML マークアップ拡張機能として正しく機能しません。