Always keep one selected row

Hi,

Xamarin Forms + SyncFusion Grid, Version 15.3.0.26, The tests are on UWP application

I am adding / updating / deleting rows of grid using source code, updating the grid itemsource in the viewmodel

After I add new row to the Grid, I select the new row as selected, this works ok
After I delete a row I want that the row after the deleted row will be selected, and if it was the last I want the row before deleted row to be selected, how can I do it ?

I have found that there is a problem setting SelectedIndex to the next or previous deleted row, only if I first set the SelectedIndex to other row (not near to the deleted row) and than set SelectedIndex to the required row, it works, any idea why ?

BTW - The same problem appear on screen too, when trying to select the row with the mouse, I first need to select other row and than select the row that is now in the place of the deleted row.

Am I doing something wrong ?

Thanks


1 Reply

AN Ashok N Syncfusion Team August 30, 2017 07:17 PM UTC

Hi Yossef, 
 
Thanks for contacting Syncfusion support. 
 
You can achieve your requirement with help of SfDataGrid.SelectedIndex property and dataGrid.SelectionController.RefreshSelection method. Please refer the below code example, 
 
private void Select_Clicked(object sender, EventArgs e) 
{ 
    int selectedindex = dataGrid.SelectedIndex; 
    if(selectedindex == viewModel.OrdersInfo.Count) 
    { 
        viewModel.OrdersInfo.RemoveAt(viewModel.OrdersInfo.Count - 1); 
        dataGrid.SelectionController.RefreshSelection(); 
        dataGrid.SelectedIndex = selectedindex - 1; 
    } 
    else 
    { 
        viewModel.OrdersInfo.RemoveAt(selectedindex - 1); 
        dataGrid.SelectionController.RefreshSelection(); 
        dataGrid.SelectedIndex = selectedindex ; 
    } 
} 
 
 
Regards, 
Ashok 


Loader.
Up arrow icon