Hi,
I believe there's a bug in SourceGrid.Extensions\DataGrid.cs
The DeleteSelectedRows function deletes rows, one at a time according to their index, in ascending order. But as each row gets deleted, the higher rows "shuffle" down the list to fill the gap.
So with a list of 10 rows, indexed 0 to 9, deleting rows 2 to 4 will do the following:
Start with 0,1,2,3,4,5,6,7,8,9
Removing index 2 leaves 0,1,3,4,5,6,7,8,9
Removing index 3 at this point *actually removes row 4* leaving 0,1,3,5,6,7,8,9
Removing index 4 at this point removes row 6, leaving us with
0,1,3,5,7,8,9 when we actually expected
0,1,5,6,7,8,9
The fix is to delete the rows in reverse order. My version of DeleteSelectedRows is attached.
Cheers,
Tim
See also: http://www.devage.com/Forum/ViewTopic.aspx?id=a7477110fdcb4f9595d06a89b679368c
DeleteSelectedRows patch