The DataGrid Control

So far, we have only looked at complex binding to the ListBox control. However, both this control and its close relative the ComboBox can only show a single property for each item they display. This can be somewhat limiting—in the previous example, it would have been useful to be able to display more information about the orders. (The Northwind database contains information about the due date, the actual fulfillment date, the date on which the order was placed, and the current status of the order, to name a few properties.) Fortunately, Windows Forms supplies a control that supports complex binding and that does not suffer from these limitations: the DataGrid control.

Like the ListBox and ComboBox controls, the DataGrid control supports complex binding. But unlike those controls, it is able to display all the properties of each list item instead of a single property. Example 10-34 shows the C# code used to bind a DataGrid control to the Orders table via the relation with the Customers table.

Example 10-34. DataGrid binding

dataGridOrders.DataSource = ds;

dataGridOrders.DataMember = "Customers.CustomerOrdersRelation";

This is very similar to Example 10-31. The main difference is that where the ListBox control’s DisplayMember property was set to a string that specified both the table to be bound to and the property to be displayed, the DataGrid control’s DataMember property just describes which table to use—the control will display all the properties. (Remember ...

Get .NET Windows Forms in a Nutshell now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.