1) Do you ever add any objects to the "MyData" ArrayList (_sharedData)?
2) You should check that "cvData" in your MyData method is not null and that it has elements.
A few other weird points with this code (bearing in mind that obviously there is a great deal not included in the question above):
a) You seem to have a property and a method with the same name (MyData). Make these names different and more meaningful.
b) For an indexed "for" loop, why not just use less-than, <, rather than less-than-or-equal, <=, and then subtracting by one? I.e.
for (int i = 0; i < cvData.Count; ++i)
<d>Don't declare you index variable for this outside the loop (unless you are going to break out of the loop for some condition and need to know what value you're at - though this is rare), and certainly don't declare it outside of the method!
c) You seem to assign three different values to the same object in the loop:
cvData[i] = LabelFirstName.Text;
cvData[i] = LabelPosition.Text;
cvData[i] = LabelLastName.Text;
d) Would you be better off using a strongly typed collection (e.g. List<T>, or Collection<T>) rather than ArrayList?
e) In respect of b,c and d, once you've sorted out what your loop should be doing, you might be able to consider using a "foreach" statement instead of the for loop:
foreach ( item in cvData)
Regards,
Ian.