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 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.