protected void Open ()
{
// I wonder if this comment is still valid, but keep
// in the meantime.
// FIXME: create the initial index cache to the DataTable, and
// only refresh the index when the DataTable
// has changes via column, row, or constraint
// changed events. the index cache is generally
// a DataViewRow array that points to the actual
// DataRows in the this DataTable's DataRowCollection;
// this index is really a cache that gets
// created during Open(), gets Updated
// when various properties of this view
// changes, gets Updated when this DataTable's
// row, column, or constraint collections have changed.
// I'm not sure what else.
// The data view will know one of the DataTable's
// collections have changed via one of
// its changed events.
// Otherwise, if getting a/the DataRowView(s),
// Count, or other properties, then just use the
// index cache.
// dataTable.ColumnChanged += new DataColumnChangeEventHandler(OnColumnChanged);
UpdateIndex (true);
if (dataTable != null)
RegisterEventHandlers ();
isOpen = true;
}