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 から派生する独自のカスタム クラスでバインドをターゲットにするかどうかは、違いが重要な場合があります。

Note

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

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

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

適用対象

こちらもご覧ください