Binding クラス


バインドの定義に高レベルでアクセスします。バインドは、バインド ターゲット オブジェクト (通常は、WPF 要素) のプロパティと任意のデータ ソース (データベース、XML ファイル、データを格納している任意のオブジェクトなど) とを接続します。Provides high-level access to the definition of a binding, which connects the properties of binding target objects (typically, WPF elements), and any data source (for example, a database, an XML file, or any object that contains data).

public ref class Binding : System::Windows::Data::BindingBase
public class Binding : System.Windows.Data.BindingBase
type Binding = class
    inherit BindingBase
Public Class Binding
Inherits BindingBase


Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) データ バインディングは、アプリケーションがデータを提示し、データと対話するための簡単で一貫性のある方法を提供します。data binding provides a simple and consistent way for applications to present and interact with data. データバインディングを使用すると、2つの異なるオブジェクトのプロパティの値を同期できます。Data binding enables you to synchronize the values of the properties of two different objects.

バインディングを確立するには、 Binding クラスまたはを継承する他のクラスの1つを使用し BindingBase ます。To establish a binding, use the Binding class or one of the other classes that inherit BindingBase. バインドするオブジェクトとデータソースの性質に関係なく、各バインドは次の図に示すモデルに従います。Regardless of what object you are binding and the nature of your data source, each binding follows the model illustrated by the following figure.

基本的なデータ バインディング ダイアグラムBasic data binding diagram

この図は、次の基本的なデータバインディングの概念を示して WPFWPF います。The figure demonstrates the following fundamental WPFWPF data binding concepts.

  • 各バインドには、通常、バインディングターゲットオブジェクト、ターゲットプロパティ、バインディングソース、および Path 使用するバインディングソースの値への、それぞれ4つのコンポーネントがあります。Each binding typically has these four components: a binding target object, a target property, a binding source, and a Path to the value in the binding source to use. たとえば、のコンテンツを TextBox employee オブジェクトの Name プロパティにバインドする場合、対象のオブジェクトはで、 TextBox ターゲットプロパティは Text プロパティ、使用する値は Name、ソースオブジェクトは employee オブジェクトです。このような場合は、を使用します。For example, if you want to bind the content of a TextBox to the Name property of an Employee object, your target object is the TextBox, the target property is the Text property, the value to use is Name, and the source object is the Employee object.

  • ターゲット プロパティは、依存関係プロパティである必要があります。The target property must be a dependency property. これは、フィールドをバインドできないことも意味します。This also means that you cannot bind a field. オブジェクトのほとんどのプロパティ UIElement は依存関係プロパティであり、ほとんどの依存関係プロパティ (読み取り専用のプロパティを除く) は、既定でデータバインディングをサポートします。Most properties of UIElement objects are dependency properties and most dependency properties, except read-only ones, support data binding by default. ( DependencyObject 型だけが依存関係プロパティを定義でき、すべて UIElement のオブジェクトはから派生 DependencyObject します)。(Only DependencyObject types can define dependency properties and all UIElement objects derive from DependencyObject.)

  • 図では指定されていませんが、バインディング ソース オブジェクトはカスタム CLRCLR オブジェクトに制限されないことに注意してください。Although not specified in the figure, it should be noted that the binding source object is not restricted to being a custom CLRCLR object. WPFWPF データ バインディングは、CLRCLR オブジェクトおよび XMLXML の形式でデータをサポートします。data binding supports data in the form of CLRCLR objects and XMLXML. いくつかの例を示すために、バインディングソースは UIElement 、、すべてのリストオブジェクト、 CLRCLR データまたは Web サービスに関連付けられているオブジェクト、 ADO.NETADO.NET またはデータを含む XmlNode にすることができ XMLXML ます。To provide some examples, your binding source may be a UIElement, any list object, a CLRCLR object that is associated with ADO.NETADO.NET data or Web Services, or an XmlNode that contains your XMLXML data.

Modeデータフローの方向を指定するには、プロパティを使用します。Use the Mode property to specify the direction of the data flow. 一方向または双方向のバインディングでソースの変更を検出するには、ソースがなどの適切なプロパティ変更通知機構を実装する必要があり INotifyPropertyChanged ます。To detect source changes in one-way or two-way bindings, the source must implement a suitable property change notification mechanism such as INotifyPropertyChanged. 例については、「 方法: プロパティ変更通知を実装する」を参照してください。For an example, see How to: Implement Property Change Notification. プロパティは、 UpdateSourceTrigger ソースの更新のタイミングを指定します。The UpdateSourceTrigger property specifies the timing of source updates. 詳細については、「 データバインディングの概要」の「基本的なデータバインディングの概念」を参照してください。For more information, see "Basic Data Binding Concepts" in Data Binding Overview.

XAML 属性の使用方法XAML Attribute Usage

<object property="{Binding  declaration}"/>  


コンマ (,) で区切られた0個以上の属性代入句。Zero or more attribute-assignment clauses separated by commas (,). 詳細については、「 バインディングマークアップ拡張機能 」または「 バインディング宣言の概要」を参照してください。For more information, see Binding Markup Extension or Binding Declarations Overview.



Binding クラスの新しいインスタンスを初期化します。Initializes a new instance of the Binding class.


初期化パスを使用して、Binding クラスの新しいインスタンスを初期化します。Initializes a new instance of the Binding class with an initial path.



バインディング エンジンにアクションを実行しないように指示するために、戻り値として使用されます。Used as a returned value to instruct the binding engine not to perform any action.


PropertyNamePropertyChangedEventArgs として使用され、インデクサー プロパティが変更されたことを示します。Used as the PropertyName of PropertyChangedEventArgs to indicate that an indexer property has changed.


SourceUpdated 添付イベントを識別します。Identifies the SourceUpdated attached event.


TargetUpdated 添付イベントを識別します。Identifies the TargetUpdated attached event.


XmlNamespaceManager 添付プロパティを識別します。Identifies the XmlNamespaceManager attached property.



非同期データ ディスパッチャーに渡される非透過データを取得または設定します。Gets or sets opaque data passed to the asynchronous data dispatcher.


そのバインディングが属している BindingGroup の名前を取得または設定します。Gets or sets the name of the BindingGroup to which this binding belongs.

(継承元 BindingBase)

Path を評価するときに、データ項目を基準にするか、DataSourceProvider オブジェクトを基準にするかを示す値を取得または設定します。Gets or sets a value that indicates whether to evaluate the Path relative to the data item or the DataSourceProvider object.


使用するコンバーターを取得または設定します。Gets or sets the converter to use.


コンバーターを評価するカルチャを取得または設定します。Gets or sets the culture in which to evaluate the converter.


Converter に渡すパラメーターを取得または設定します。Gets or sets the parameter to pass to the Converter.


ターゲット上の値が変更された後でバインディング ソースを更新する前に待機する時間 (ミリ秒単位) を取得または設定します。Gets or sets the amount of time, in milliseconds, to wait before updating the binding source after the value on the target changes.

(継承元 BindingBase)

バインド ソース オブジェクトとして使用する要素の名前を取得または設定します。Gets or sets the name of the element to use as the binding source object.


バインドが値を返すことができないときに使用する値を取得または設定します。Gets or sets the value to use when the binding is unable to return a value.

(継承元 BindingBase)

Binding が値の取得と設定を非同期で行う必要があるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the Binding should get and set values asynchronously.


バインドのデータ フローの方向を示す値を取得または設定します。Gets or sets a value that indicates the direction of the data flow in the binding.


バインディング ターゲットからバインディング ソースへ値が転送されたときに、SourceUpdated イベントを発生させるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether to raise the SourceUpdated event when a value is transferred from the binding target to the binding source.


バインディング ソースからバインディング ターゲットへ値が転送されたときに TargetUpdated イベントを発生させるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether to raise the TargetUpdated event when a value is transferred from the binding source to the binding target.


バインドされたオブジェクトに対して Error 添付イベントを発生させるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether to raise the Error attached event on the bound object.


バインディング ソース プロパティへのパスを取得または設定します。Gets or sets the path to the binding source property.


バインディング ターゲットの位置に対して相対的な位置を指定することにより、バインディング ソースを取得または設定します。Gets or sets the binding source by specifying its location relative to the position of the binding target.


バインド ソースとして使用されるオブジェクトを取得または設定します。Gets or sets the object to use as the binding source.


バインドされている値が文字列として表示される場合に、バインディングの書式を指定する文字列を取得または設定します。Gets or sets a string that specifies how to format the binding if it displays the bound value as a string.

(継承元 BindingBase)

ソースの値が null のときにターゲットで使用される値を取得または設定します。Gets or sets the value that is used in the target when the value of the source is null.

(継承元 BindingBase)

バインディング ソースの値の更新時にバインディング エンジンが検出した例外を処理するためにカスタム ロジックの提供に使用できるハンドラーを取得または設定します。Gets or sets a handler you can use to provide custom logic for handling exceptions that the binding engine encounters during the update of the binding source value. これは、バインディングに ExceptionValidationRule を関連付けている場合にのみ適用できます。This is only applicable if you have associated an ExceptionValidationRule with your binding.


バインディング ソースの更新のタイミングを決定する値を取得または設定します。Gets or sets a value that determines the timing of binding source updates.


DataErrorValidationRule を含めるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether to include the DataErrorValidationRule.


ExceptionValidationRule を含めるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether to include the ExceptionValidationRule.


NotifyDataErrorValidationRule を含めるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether to include the NotifyDataErrorValidationRule.


ユーザー入力の有効性をチェックする規則のコレクションを取得します。Gets a collection of rules that check the validity of the user input.


使用する XMLXML バインディング ソースの値を返す XPath クエリーを取得または設定します。Gets or sets an XPath query that returns the value on the XMLXML binding source to use.



XML バインディングで名前空間に対応している XPath クエリを実行するために使用される XmlNamespaceManager を取得または設定します。Gets or sets the XmlNamespaceManager used to perform namespace-aware XPath queries in XML bindings.


AddSourceUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

SourceUpdated 添付イベントのハンドラーを追加します。Adds a handler for the SourceUpdated attached event.

AddTargetUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

TargetUpdated 添付イベントのハンドラーを追加します。Adds a handler for the TargetUpdated attached event.


指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

指定したオブジェクトにアタッチされているバインドによって使用される XMLXML 名前空間マネージャー オブジェクトを返します。Returns an XMLXML namespace manager object used by the binding attached to the specified object.


現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

このバインディングおよび拡張機能の適用先のプロパティに設定されるオブジェクトを返します。Returns an object that should be set on the property where this binding and extension are applied.

(継承元 BindingBase)
RemoveSourceUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

SourceUpdated 添付イベントのハンドラーを削除します。Removes a handler for the SourceUpdated attached event.

RemoveTargetUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

TargetUpdated 添付イベントのハンドラーを削除します。Removes a handler for the TargetUpdated attached event.

SetXmlNamespaceManager(DependencyObject, XmlNamespaceManager)

指定した要素にアタッチされているバインドによって使用される名前空間マネージャー オブジェクトを設定します。Sets a namespace manager object used by the binding attached to the provided element.


シリアル化プロセスが、このクラスのインスタンスの FallbackValue プロパティの有効値をシリアル化する必要があるかどうかを示す値を返します。Returns a value that indicates whether serialization processes should serialize the effective value of the FallbackValue property on instances of this class.

(継承元 BindingBase)

Path プロパティを永続化する必要があるかどうかを示します。Indicates whether the Path property should be persisted.


Source プロパティを永続化する必要があるかどうかを示します。Indicates whether the Source property should be persisted.


TargetNullValue プロパティをシリアル化する必要があるかどうかを示す値を返します。Returns a value that indicates whether the TargetNullValue property should be serialized.

(継承元 BindingBase)

ValidationRules プロパティを永続化する必要があるかどうかを示します。Indicates whether the ValidationRules property should be persisted.


現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)



値がバインディング ターゲットからバインディング ソースに転送されるときに発生します。ただし、これは NotifyOnSourceUpdated 値が true に設定されているバインディングに限られます。Occurs when a value is transferred from the binding target to the binding source, but only for bindings with the NotifyOnSourceUpdated value set to true.


値がバインディング ソースからバインディング ターゲットに転送されるときに発生します。ただし、これは NotifyOnTargetUpdated 値が true に設定されているバインディングに限られます。Occurs when a value is transferred from the binding source to the binding target, but only for bindings with the NotifyOnTargetUpdated value set to true.