SfDataGrid Loses sort order when an element is added to its binded collection
Hi,
I have 2 Grids [SfDataGrid]. User clicks some Add button to add record(s) from one grid to another. The grids are bound to two collections. The target grid is already sorted on an ID column. When a record is added to the target grid, the target grid loses the sort order, i.e. the newly added record does get inserted in the right place.
In order to retain the sort order on the target grid after a record is added, I have written an event handler on the View object of the target grid [DataGrid.View.SourceCollectionChanged += View_SourceCollectionChanged]. In this event handler, I clear the SortColumnDescriptions collection and re add the Sort Item again.
SortColumnDescriptions.Clear();
SortColumnDescription sortItem = new SortColumnDescription();
sortItem.ColumnName = ColumnName;
sortItem.SortDirection = System.ComponentModel.ListSortDirection.Ascending;;
SortColumnDescriptions.Add(sortItem);
The above code sorts the records on the target grid after a new record is added to its ItemSource ollection. But the problem is, the last added record always appears twice on the target grid. Even if I add multiple records, its only the last added record which appears twice and rest of the records are displayed in the proper sort order.
In the debugger, I checked the Records collection of the View object on the target grid, the DataGrid.View.Records shows the records properly [in the proper sort order], i.e. it does not show any record twice. I am baffled where does this extra record come from?
Am I missing any IsSynchronizedWithCurrentItem kind of property?
Any suggestion?
Thanks,
Soumyajit Roy
SIGN IN To post a reply.
9 Replies
AR
Akila Rajaram
Syncfusion Team
June 5, 2015 12:47 PM UTC
Hi Soumyajit ,
Thank you for using Syncfusion Products.
You can directly apply sorting for newly added record in button click by setting LiveDataUpdateMode as AllowDataShapping and there is no need to use the SourceCollectionChanged event which is specified in your update .We have prepared the sample based on your requirement . Please find the sample from the following location ,
Sample : http://www.syncfusion.com/downloads/support/forum/119324/ze/SfDataGrid_Sample_119324222495554
Please refer the following code example :
XAML :
Please refer the below ug link for more information about data manipulation in SfDataGrid,
Link : http://help.syncfusion.com/ug/wpf/index.html#!Documents/datamanipulation.htm
Please let us know if you require further assistance on this .
Regards,
Akila R.
Thank you for using Syncfusion Products.
You can directly apply sorting for newly added record in button click by setting LiveDataUpdateMode as AllowDataShapping and there is no need to use the SourceCollectionChanged event which is specified in your update .We have prepared the sample based on your requirement . Please find the sample from the following location ,
Sample : http://www.syncfusion.com/downloads/support/forum/119324/ze/SfDataGrid_Sample_119324222495554
Please refer the following code example :
XAML :
|
<syncfusion:SfDataGrid x:Name="grid" Grid.Row="0" AllowSorting="True" AutoGenerateColumns="True" AutoGenerateColumnsMode="None" ItemsSource="{Binding Stud}" LiveDataUpdateMode="AllowDataShaping" |
Please refer the below ug link for more information about data manipulation in SfDataGrid,
Link : http://help.syncfusion.com/ug/wpf/index.html#!Documents/datamanipulation.htm
Please let us know if you require further assistance on this .
Regards,
Akila R.
SR
Soumyajit Roy
June 5, 2015 03:57 PM UTC
Thank You Akila. The solution is so effective, lot less code and clean.
SC
Saranya CJ
Syncfusion Team
June 8, 2015 05:30 AM UTC
Hi Soumyajit,
Thank you for your update. Please let us know if you require any other assistance.
Regards,
Saranya
Thank you for your update. Please let us know if you require any other assistance.
Regards,
Saranya
XU
xudongli
September 28, 2017 01:13 PM UTC
this doesn't work for me when I have customised sorting class
MK
Muthukumar Kalyanasundaram
Syncfusion Team
October 1, 2017 03:56 AM UTC
Hi Xudongli,
Thank you for your update.
We are unable to reproduce the reported “Custom sorting is not worked properly while adding item in grid” issue in our end. Could you please share your xaml and customized sorting class files along with the model details if you did any other customization in grid?. We could analyze further and resolve your reported issue at the earliest.
Regards,
Muthukumar K
DA
Dumitriu Ana-Florentina
April 28, 2020 04:37 PM UTC
I have the same problem as the initiator above, but I have Unbound columns which don't allow me to use LiveDataUpdateMode as AllowDataShapping.
How can I solve it?
VS
Vijayarasan Sivanandham
Syncfusion Team
April 29, 2020 03:54 PM UTC
Hi Dumitriu Ana-Florentina,
Thank you for contacting Syncfusion support.
We have checked the reported issue and unable to replicate the issue from our end. Please find the tested sample and video demo from our end in the below link,
Thank you for contacting Syncfusion support.
We have checked the reported issue and unable to replicate the issue from our end. Please find the tested sample and video demo from our end in the below link,
Video Link: https://www.syncfusion.com/downloads/support/forum/119324/ze/LiveDataUpdateMode948061091
if you still facing the same issue? If yes, please modify the sample based on your scenario.
It will be helpful for us to check on it and provide you the solution at the earliest.
Regards,
Vijayarasan S
DA
Dumitriu Ana-Florentina
April 30, 2020 08:00 AM UTC
Hello, thank you for your help!
We tried this solution once, but it seemed it was another configuration that affected AllowDataShapping.
It works now.
Have a nice day!
MA
Mohanram Anbukkarasu
Syncfusion Team
May 1, 2020 09:50 AM UTC
Hi Dumitriu,
Thanks for the update.
We are glad to know that the reported problem has been resolved at your end. Please let us know if you have any further queries on this. We are happy to help you.
Regards,
Mohanram A.
SIGN IN To post a reply.
- 9 Replies
- 8 Participants
-
SR Soumyajit Roy
- Jun 4, 2015 11:07 PM UTC
- May 1, 2020 09:50 AM UTC