Here is one try at this.
private bool okToClear = false;
private void gridDataBoundGrid1_CurrentCellMoved(object sender, GridCurrentCellMovedEventArgs e)
{
okToClear = false;
this.gridDataBoundGrid1.Selections.Clear();
okToClear = false;
GridCurrentCell cc = this.gridDataBoundGrid1.CurrentCell;
this.gridDataBoundGrid1.Selections.Add(GridRangeInfo.Row(cc.RowIndex));
}
private void grid_SelectionChanging(object sender, GridSelectionChangingEventArgs e)
{
if(e.Range.IsEmpty)
{
e.Cancel = !okToClear;
}
}