We have an MVVM application which uses a XamGrid (v12.1) bound to a BindingList. When a cell in the XamGrid is modified, the View needs to notify the row index of the modified cell to the View Model. For this, I used the CellExitedEditMode event to get the row index as follows:
void OnCellExitedEditMode(object sender, CellExitedEditingEventArgs e)
{ int rowIndex = e.Cell.Row.Index; }
The above code stops working after the user performs a sort operation. After the XamGrid is sorted, the row index obtained using the method above is not the same as the row index from the BindingList.
Hello Koshy,
Thank you for your feedback. I am glad that you resolved your issue and I believe the other community members may benefit from this as well. Also I can say that you can suggest new product idea (ActualRowIndex Property) for future versions (or vote for existing ones) at http://ideas.infragistics.com.
There are many benefits to submitting an product idea:
- Direct communication with our product management team regarding your product idea.
- Notifications whenever new information regarding your idea becomes available.
- Ability to vote on your favorite product ideas to let us know which ones are the most important to you. You will have ten votes for this and can change which ideas you are voting for at any time.
- Allow you to shape the future of our products by requesting new controls and products altogether.
- You and other developers can discuss existing product ideas with members of our Product Management team.
Steps to create your idea:
The Product Idea site puts you in the driver’s seat and allows you to track the progress of your ideas at any time, see how many votes it got, read comments from other developers in the community, and see if someone from the product team has additional questions for you.
Hi Stefan,
Thanks for the response. Your solution is correct and works.
A performance issue with this solution is that the IndexOf operation involves scanning the list to find the row index. It would be nice if the XamGrid provided some internal support to keep track of the row index.
Thanks,
Koshy
Thank you for your post. I have been looking into it and I can suggest you use the following code in order to get the index of the currently edited item directly from the BindingList, where the indexes doesn’t change:
int index = (sender as XamGrid).ItemsSource.OfType<object>().ToList().IndexOf(e.Cell.Row.Data as ChartData);
where "ChartData" is your data type. Please let me know if this helps you or you need further assistance on this matter.
Looking forward for your reply.