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