private void DataSourceOrBoundsChangedListener()
{
if (DataSource != null)
{
this.query.Take = NumRowsInView;
this.query.Skip = 0;
DataView = DataSource.GetDataView(query);
DataSource.DataChanged += DataSourceDataChangedListener;
SelectedIndex = 0;
selectedColumnIndex = 0;
SelectedItem = DataView.Items.Count > 0 ? DataView.Items[0] : null;
}
}