Data Binding

Our manual code to keep the data and the UI synchronized has the effect of manually binding together two pairs of properties, each pair composed of one property on the Person object and the Text property on a TextBox object. In WPF, data binding is the act of registering two properties with the data binding engine and letting the engine keep them synchronized, converting types as appropriate, as shown in Figure 6-7.

The synchronization and conversion duties of data binding

Figure 6-7. The synchronization and conversion duties of data binding

Bindings

We can register two properties to be kept in sync by the data binding engine using an instance of a Binding object, as shown in Example 6-7.

Example 6-7. Binding a UI target property to a data source property

<TextBox ...>
  <TextBox.Text>
     <Binding Path="Age" />
  </TextBox.Text>
</TextBox>

In Example 6-7, we've used the property element syntax introduced in Chapter 1 to create an instance of the Binding markup extension class and initialize its Path property to Age. This establishes the synchronization relationship with the Text property of the TextBox object. Using the binding markup extension syntax (also introduced in Chapter 1), we can shorten Example 6-7 to the code snippet shown in Example 6-8.

Example 6-8. The shortcut binding syntax

<TextBox Text="{Binding Path=Age}" />

As an even shorter cut, you can drop the Path designation altogether and the Binding will still know ...

Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.