The DataView Class
The
master/details views shown earlier illustrate that the data-binding
architecture is capable of showing a filtered view of the contents of
a table—if you bind a DataGrid
or a
ListBox
to a child of a relation in a data source,
you will just see the related items in the child table instead of all
of them. This relational view is just one of the ways in which we can
filter the underlying data. The data-binding architecture also
provides the DataView
class, whose purpose is to
provide modified views of tables.
We have already been using the DataView
class
implicitly. The DataSet
class itself does not
implement all the binding interfaces discussed earlier—it
defers to the DataView
. If you call the
GetType
method on the List
property of a CurrencyManager
for a
DataSet
, you will see that its type is not
DataSet
or DataTable
; it is
DataView
.
The DataSet
provides a
default view for each of its tables, and this is the view to which
controls will normally bind. We can modify the default
view’s properties, as Example 10-37
shows.
Example 10-37. Changing the sort order of the default view
// C# code ds.Tables["Orders"].DefaultView.Sort = "ShippedDate"; ' VB code ds.Tables("Orders").DefaultView.Sort = "ShippedDate"
This modifies the default DataView
for the
Orders
table, causing it to display the contents
sorted by their ShippedDate
column. The
DataView
class also provides a
RowFilter
property, allowing the view to filter out rows according to the specified criteria, as ...
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.