I am planning to show, or to say, dump a set of same objects in my application to user.
I need a control that after adding data to it, changing the data in a specific cell and row can be done programmatically.
At the moment I am using a ListView and I have populated it with my object like this:

My object is like:
public class TestData
{
public string Name {get;set;}
public double Force {get;set;}
public double PreTriggerVolt {get;set;}
public double PreTriggerCurr {get;set;}
public double TriggerVolt {get;set;}
public double TriggerCurr {get;set;}
public double PostTriggerVolt {get;set;}
public double PostTriggerCurr {get;set;}
}
The Type column is hard coded by myself in the ListView 😛
I will have a lot of this in the table.
One of the problem is, sometimes, for example, after collecting the data, all or some of TriggerVolt values should be added/substracted by an offset value. You may say it is better to clear the ListView, do the changes in the object using a foreach or whatever, then recrate the ListView. But isn’t there a way to directly point out to a specific row-column? Forexample I would really like something that I can name a cell and call it later. someting like:
Cell[J6][PreTriggerVolt] == 0.01212 (just a general idea)
Another problem is sorting the data by name, greatness or … For example if I sort the Pin column, the row below actual pin name can be dominant. I mean the Force : -0.1 for example…then everything in my listview collapse!!! it will be a huge mess.
And a lot of other problems you may already know about ListView.
I want to know what is the best way to approach this goal.
Thanks.
Instead of building the listview you should look into binding the control directly to your model. Here is a good tutorial on Binding in WinForms. Depending on what you want to do with the data being shown a DataGrid may be a better option (especially if you want the user to be able to edit the data, even with custom controls – see this tutorial).
After you have set the binding up you will need to implement the INotifyPropertyChanged interface on your model class to notify the binding framework that a property has changed.
}