protected virtual IEnumerable GetData()
{
_selectResult = null;
var view = ConnectToDataSourceView();
if(view != null) {
Debug.Assert(_currentViewValid);
// create a handle here to make sure this is a synchronous operation.
_selectWait = new EventWaitHandle(false, EventResetMode.AutoReset);
view.Select(SelectArguments, new DataSourceViewSelectCallback(DoSelect));
_selectWait.WaitOne();
} else if(DataSource != null)
_selectResult = DataSource as IEnumerable;
return _selectResult;
}