BindingOperations.SetBinding メソッド

定義

Binding をターゲット オブジェクトのターゲット プロパティに関連付けます。 このメソッドは、XAML マークアップで {Binding} マークアップ拡張機能 を使用することと同等のコードです。

 static void SetBinding(DependencyObject const& target, DependencyProperty const& dp, BindingBase const& binding);
public static void SetBinding(DependencyObject target, DependencyProperty dp, BindingBase binding);
function setBinding(target, dp, binding)
Public Shared Sub SetBinding (target As DependencyObject, dp As DependencyProperty, binding As BindingBase)

パラメーター

target
DependencyObject

評価されたバインディングのターゲットとなるオブジェクト。

dp
DependencyProperty

バインドするターゲットの プロパティ。識別子で指定します。 これらの識別子は、通常、 ターゲット オブジェクトを定義する型またはその基本型の 1 つで静的読み取り専用プロパティとして使用できます。 添付プロパティにバインドすることもできますが、「解説」を参照してください。

binding
BindingBase

ターゲット プロパティに割り当てるバインド。 このバインディングは初期化する必要があります。Path などの重要なバインディング プロパティは、パラメーターとして渡す前に既に設定されている必要があります。

注釈

カスタム依存関係プロパティまたはカスタム添付プロパティにバインドできます。dp パラメーターとして渡す識別子は、Windows ランタイム定義されたプロパティである必要はありません。

BindingOperations.SetBinding は静的ユーティリティ メソッドであり、基本的には FrameworkElement.SetBinding と同じことを行います。 FrameworkElement.SetBinding はインスタンス メソッドであるため、より一般的に使用されます。 ただし、重要な違いの 1 つは、BindingOperations.SetBinding では任意の DependencyObjectターゲット値を使用できるのに対し、FrameworkElement.SetBinding は定義上、FrameworkElement ターゲットにのみ使用できることです。 XAML UI に使用されるほとんどのWindows ランタイム クラスは、通常は問題になりません。これは、ほとんどの場合、FrameworkElement サブクラスであるためです。 ただし、 DependencyObject または UIElement から派生した独自のカスタム クラスでバインドをターゲットにするかどうかは、違いが重要になる場合があります。

注意

SetBinding メソッドを呼び出し、新しい Binding オブジェクトを渡しても、必ずしも既存のバインディングが削除されるとは限りません。 代わりに、まず DependencyObject.ClearValue メソッドを呼び出してから、SetBinding を呼び出す必要があります。

添付プロパティへのバインド

データ バインディングは、ターゲット オブジェクトがサポートする添付プロパティに配置できます。 技術的には DependencyObject では、可能なすべての添付プロパティがサポートされていますが、通常は、そのオブジェクトまたはシナリオに関連する添付プロパティにバインドのみを設定します。 たとえば、ターゲット要素にその情報を使用する Grid 親が含まれていると予想される場合にのみGrid.Row にバインドを設定します。 添付プロパティの owner クラスに存在する依存関係プロパティ識別子として dp パラメーターを指定します ( Grid.Row の例では、その識別子は Grid.RowProperty です)。 添付プロパティであるため、ターゲットでその識別子が見つかりません。 添付プロパティの詳細については、「添付プロパティの 概要」を参照してください。

適用対象

こちらもご覧ください