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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access