Do Not Rely On The ListView for Processing
UserControls are strictly designed to be interfaces, In such a case I would have to recommend creating a data structure to work with a class that has inherited a collection interface. I suggest this, because custom events can be fired to replace for loops and that makes the application less process intensive.
Here is an example:
[C#] Data Structures with Interface Example File - Pastebin.com[
^]
Then, all we have to do is update the collection from the PrimaryKey's, which in the class I provided I am assuming that the PrimaryKey is a Unique Identifier.
This Becomes MyClass[listView.selectedIndex[0]].Column = value;
Which, whenever changed should fire an event, containing the new and old information to find it in the listview.
What now? Out of for loops! Which can get extremely process intensive. Especially if the database is commercial.