public void End()
{
if (SelectedIndex == DataSource.GetHighestKnownIndex(query))
{
PageDown();
}
else
{
SelectedIndex = DataSource.GetHighestKnownIndex(query);
visibleRowOffset = SelectedIndex - NumRowsInView + 1;
if (visibleRowOffset < 0) visibleRowOffset = 0;
this.query.Skip = visibleRowOffset;
DataView = DataSource.GetDataView(query);
if (SelectedIndex - visibleRowOffset < DataView.Items.Count)
{
SelectedItem = DataView.Items[SelectedIndex - visibleRowOffset];
}
else if (SelectedIndex > 0)
{
SelectedIndex--;
SelectedItem = DataView.Items[SelectedIndex - visibleRowOffset];
}
}
}