You most probably want to use a ListBox
with its elements (your text boxes and labels in needed amount) are tied to the view model via data-binding. I hope you're familiar with data binding in XAML & C#, but if not, check this out.
So, I'd create a ListBox
with the ItemsSource
property data-bound to an instance of ObservableCollection
, containing view models for your list view.
<ListBox ItemsSource="{Binding GPAItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding GPAItemLabel}" />
<TextBox Text="{Binding GPAItemText, Mode=TwoWay}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
where GPAItems
is ObservableCollection<GPAItem>
, and GPAItem
is:
class GPAItem: INotifyPropertyChanged
{
...
public string GPAItemLabel {get; set;}
public string GPAItemText {get; set;}
}
The code above is not tested (I've just written it in browser for you), but you should get the idea from here. Again, knowledge of data-binding and MVVM architecture is highly beneficial for any Windows Phone developer, so check it out, and most questions will go away.