Binding クラス

定義

バインド ターゲットとデータ ソースのプロパティを接続するバインディングを定義します。

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Binding : BindingBase
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Binding : BindingBase
Public Class Binding
Inherits BindingBase
<Binding .../>
- or -
<dependencyobject dependencyproperty="{Binding bindingArgs}" />
継承
Object IInspectable DependencyObject BindingBase Binding
属性

次のコード例は、XAML でバインドを作成する方法を示しています。 完全なコード一覧については、 XAML データ バインディングのサンプルを参照してください。

<StackPanel Margin="5">

  <TextBlock Text="Name:" Style="{StaticResource DescriptionTextStyle}" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <TextBox Text="{Binding Path=Name, Mode=TwoWay}" 
    Width="350" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <TextBlock Text="Organization:" Style="{StaticResource DescriptionTextStyle}" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <!-- You can omit the 'Path=' portion of the binding expression. --> 
  <TextBox Text="{Binding Organization, Mode=TwoWay}" Width="350" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

</StackPanel>

次のコード例は、コードでバインドを作成する方法を示しています。

// Create the source string.
string s = "Hello";

// Create the binding description.
Binding b = new Binding();
b.Mode = BindingMode.OneTime;
b.Source = s;

// Attach the binding to the target.
TextBlock MyText = new TextBlock();
MyText.SetBinding(TextBlock.TextProperty, b);
// Create the source string.
String^ s = ref new String(L"Hello");

// Create the binding description.
Binding^ b = ref new Binding();
b->Mode = BindingMode::OneTime;
b->Source = s;

// Attach the binding to the target.
TextBlock^ MyText = ref new TextBlock();
MyText->SetBinding(MyText->TextProperty, b);

注釈

{Binding} マークアップ拡張機能を使用すると、XAML で Binding 値を 1 つの属性文字列として指定できます。これには、Path や Source などの Binding プロパティの設定も含まれます。 データ バインディングの概念の詳細については、「 データ バインディングの詳細」を参照してください。

Binding クラスは 、{Binding} マークアップ拡張機能の分離コード公開と見なされる場合があります。 バインドがターゲットに既に適用されている場合 (XAML が読み込まれるときに発生します)、Binding オブジェクトの読み取り/書き込みプロパティを設定して、実行時のバインドの動作を変更することはできません。 XAML で定義されたバインディングは変更できないと見なす必要があります。 ただし、 FrameworkElement.SetBinding を使用して、新しい Binding オブジェクトを作成し、そのプロパティを設定し、特定の UI 要素ターゲットに新しいバインドを確立できます。 詳細については、「 コードでのバインドの作成」を参照してください。

Binding オブジェクトは 、FrameworkElement の依存関係プロパティをデータ オブジェクトに直接接続して、データ オブジェクトの更新がデータ バインディングを使用するプロパティに自動的に反映されるようにします。 Binding クラスは、バインドのプロパティを定義します。 各バインディングにはターゲット要素、ターゲット プロパティ、およびデータ ソースが必要ですが、指定しない場合は既定で一部の値が提供されます。

データ オブジェクトのプロパティまたはサブプロパティにバインドするには、Binding オブジェクトの Path プロパティを設定します。 コードまたは XAML で Path を設定する方法の詳細については、「 プロパティ パス構文 」または 「{Binding} マークアップ拡張機能」を参照してください。

Binding クラスのインスタンスを複数のターゲットに適用できます。 ただし、Binding オブジェクトをターゲット要素にアタッチした後でプロパティ値を変更することはできません。

注意

FrameworkElement.SetBinding メソッドを呼び出し、新しい Binding オブジェクトを渡しても、必ずしも既存のバインドが削除されるわけではありません。 代わりに、 メソッドを使用する DependencyObject.ClearValue(DependencyProperty) 必要があります。

Binding を受け取ることができるプロパティ、またはデータ バインド値に設定できるプロパティの XAML 属性の使用方法の詳細については、「 {Binding} マークアップ拡張」を参照してください。

データ バインディングのターゲットとなるプロパティは、依存関係プロパティである必要があります。 詳しくは、「依存関係プロパティの概要」をご覧ください。

コンストラクター

Binding()

Binding クラスの新しいインスタンスを初期化します。

プロパティ

Converter

バインディング エンジンによって呼び出されるコンバーター オブジェクトを取得または設定して、ソースとターゲットの間で渡されるときにデータを変更するか、またはその逆を行います。

ConverterLanguage

Converter プロパティで指定されたコンバーターに渡す言語の名前を指定する値を取得または設定します。

ConverterParameter

コンバーター ロジックで使用できるパラメーターを取得または設定します。

Dispatcher

常に Windows アプリ SDK アプリで を返しますnull。 代わりに DispatcherQueue を使用してください。

(継承元 DependencyObject)
DispatcherQueue

このオブジェクトが DispatcherQueue 関連付けられている を取得します。 は DispatcherQueue 、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の にアクセス DependencyObject できる機能を表します。

(継承元 DependencyObject)
ElementName

Binding のバインディング ソースとして使用する要素の名前を取得または設定します。

FallbackValue

バインドが値を返すことができないときに使用する値を取得または設定します。

Mode

バインドのデータ フローの方向を示す値を取得または設定します。

Path

バインディング ソース プロパティへのパスを取得または設定します。

RelativeSource

バインディング ターゲットの位置に対して相対的な位置を指定することにより、バインディング ソースを取得または設定します。 これは、XAML コントロール テンプレート内のバインドで最もよく使われます。

Source

バインディングのデータ ソースを取得または設定します。

TargetNullValue

ソースの値が null の場合にターゲットで使用される値を取得または設定 します

UpdateSourceTrigger

双方向バインディングのバインディング ソース更新のタイミングを決定する値を取得または設定します。

メソッド

ClearValue(DependencyProperty)

依存関係プロパティのローカル値をクリアします。

(継承元 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

依存関係プロパティに対して確立された基本値を返します。これは、アニメーションがアクティブでない場合に適用されます。

(継承元 DependencyObject)
GetValue(DependencyProperty)

DependencyObject から依存関係プロパティの現在の有効な値を返します。

(継承元 DependencyObject)
ReadLocalValue(DependencyProperty)

ローカル値が設定されている場合は、依存関係プロパティのローカル値を返します。

(継承元 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。

(継承元 DependencyObject)

適用対象

こちらもご覧ください