Binding Class

Definition

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 class Binding : System.Windows.Data.BindingBase
Inheritance

Inherited Members

System.Object

System.Windows.Data.BindingBase

Remarks

Windows Presentation Foundation (WPF) data binding provides a simple and consistent way for applications to present and interact with data. Data binding enables you to synchronize the values of the properties of two different objects.

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

The figure demonstrates the following fundamental WPF data binding concepts.

  • 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. 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. Most properties of UIElement objects are dependency properties and most dependency properties, except read-only ones, support data binding by default. (Only DependencyObject types can define dependency properties and all UIElement objects derive from DependencyObject.)

  • Although not specified in the figure, it should be noted that the binding source object is not restricted to being a custom CLR object. WPF data binding supports data in the form of CLR objects and XML. To provide some examples, your binding source may be a UIElement, any list object, a CLR object that is associated with ADO.NET data or Web Services, or an XmlNode that contains your XML data.

Use the Mode property to specify the direction of the data flow. 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. The UpdateSourceTrigger property specifies the timing of source updates. For more information, see "Basic Data Binding Concepts" in Data Binding Overview.

XAML Attribute Usage

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

XAML Values

declaration
Zero or more attribute-assignment clauses separated by commas (,). For more information, see Binding Markup Extension or Binding Declarations Overview.

Constructors

Binding()

Initializes a new instance of the Binding class.

Binding(​String)

Initializes a new instance of the Binding class with an initial path.

Fields

Do​Nothing

Used as a returned value to instruct the binding engine not to perform any action.

Indexer​Name

Used as the PropertyName of PropertyChangedEventArgs to indicate that an indexer property has changed.

Source​Updated​Event

Identifies the SourceUpdated attached event.

Target​Updated​Event

Identifies the TargetUpdated attached event.

Xml​Namespace​Manager​Property

Identifies the System.Windows.Data.Binding.XmlNamespaceManager attached property.

Properties

Async​State

Gets or sets opaque data passed to the asynchronous data dispatcher.

Binds​Directly​To​Source

Gets or sets a value that indicates whether to evaluate the Path relative to the data item or the DataSourceProvider object.

Converter

Gets or sets the converter to use.

Converter​Culture

Gets or sets the culture in which to evaluate the converter.

Converter​Parameter

Gets or sets the parameter to pass to the Converter.

Element​Name

Gets or sets the name of the element to use as the binding source object.

Is​Async

Gets or sets a value that indicates whether the Binding should get and set values asynchronously.

Mode

Gets or sets a value that indicates the direction of the data flow in the binding.

Notify​On​Source​Updated

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.

Notify​On​Target​Updated

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.

Notify​On​Validation​Error

Gets or sets a value that indicates whether to raise the Error attached event on the bound object.

Path

Gets or sets the path to the binding source property.

Relative​Source

Gets or sets the binding source by specifying its location relative to the position of the binding target.

Source

Gets or sets the object to use as the binding source.

Update​Source​Exception​Filter

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. This is only applicable if you have associated an ExceptionValidationRule with your binding.

Update​Source​Trigger

Gets or sets a value that determines the timing of binding source updates.

Validates​On​Data​Errors

Gets or sets a value that indicates whether to include the DataErrorValidationRule.

Validates​On​Exceptions

Gets or sets a value that indicates whether to include the ExceptionValidationRule.

Validates​On​Notify​Data​Errors

Gets or sets a value that indicates whether to include the NotifyDataErrorValidationRule.

Validation​Rules

Gets a collection of rules that check the validity of the user input.

X​Path

Gets or sets an XPath query that returns the value on the XML binding source to use.

Methods

Add​Source​Updated​Handler(​Dependency​Object, ​Event​Handler<​Data​Transfer​Event​Args>)

Adds a handler for the SourceUpdated attached event.

Add​Target​Updated​Handler(​Dependency​Object, ​Event​Handler<​Data​Transfer​Event​Args>)

Adds a handler for the TargetUpdated attached event.

Get​Xml​Namespace​Manager(​Dependency​Object)

Returns an XML namespace manager object used by the binding attached to the specified object.

Remove​Source​Updated​Handler(​Dependency​Object, ​Event​Handler<​Data​Transfer​Event​Args>)

Removes a handler for the SourceUpdated attached event.

Remove​Target​Updated​Handler(​Dependency​Object, ​Event​Handler<​Data​Transfer​Event​Args>)

Removes a handler for the TargetUpdated attached event.

Set​Xml​Namespace​Manager(​Dependency​Object, ​Xml​Namespace​Manager)

Sets a namespace manager object used by the binding attached to the provided element.

Should​Serialize​Path()

Indicates whether the Path property should be persisted.

Should​Serialize​Source()

Indicates whether the Source property should be persisted.

Should​Serialize​Validation​Rules()

Indicates whether the ValidationRules property should be persisted.