Relying on Try..Catch to enforce array index bounds feels a bit like pointing a loaded gun towards one's foot, but... if you're ok with it, then go for it.
Having got that off my conscience:
you're right about the
log yes, list no situation being odd. Three ideas:
1/ after you add each item to the list, Log(ListView_Runs.Items.Length) or whatever gets number of items in ListView
2/ do a Sleep(1) after adding each item to ListView_Runs
3/ add a temporary test item after the ListView_Runs is initialized or loaded via layout, see if that shows up on screen
Edit: stevel05 beat me by 10 seconds
great minds think alike, but my mind is slower