I have a situation where I need to base the grid on an observable collection and I want to auto generate the columns based on the values of the Period property of the collection. For example, given the following code I want the column headers to display 2013, 2014, 2015, etc.
 
 
 
 
 
 
 
Does anyone have any suggestions?
                                Imports System.Collections.ObjectModelClass MainWindow    Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded        Dim colSubjects As New ObservableCollection(Of Subject)        colSubjects.Add(New Subject With {.Period = 2013, .Subject = "English", .Average = 1.65})        colSubjects.Add(New Subject With {.Period = 2014, .Subject = "English", .Average = 18.6})        colSubjects.Add(New Subject With {.Period = 2015, .Subject = "English", .Average = 15.4})        colSubjects.Add(New Subject With {.Period = 2016, .Subject = "English", .Average = 8.2})        colSubjects.Add(New Subject With {.Period = 2017, .Subject = "English", .Average = 9.72})        colSubjects.Add(New Subject With {.Period = 2018, .Subject = "English", .Average = 8.55})        colSubjects.Add(New Subject With {.Period = 2013, .Subject = "Mathematics", .Average = 1.65})        colSubjects.Add(New Subject With {.Period = 2014, .Subject = "Mathematics", .Average = 18.6})        colSubjects.Add(New Subject With {.Period = 2015, .Subject = "Mathematics", .Average = 15.4})        colSubjects.Add(New Subject With {.Period = 2016, .Subject = "Mathematics", .Average = 8.2})        colSubjects.Add(New Subject With {.Period = 2017, .Subject = "Mathematics", .Average = 9.72})        colSubjects.Add(New Subject With {.Period = 2018, .Subject = "Mathematics", .Average = 8.55})        colSubjects.Add(New Subject With {.Period = 2013, .Subject = "Biology", .Average = 1.65})        colSubjects.Add(New Subject With {.Period = 2014, .Subject = "Biology", .Average = 18.6})        colSubjects.Add(New Subject With {.Period = 2015, .Subject = "Biology", .Average = 15.4})        colSubjects.Add(New Subject With {.Period = 2016, .Subject = "Biology", .Average = 8.2})        colSubjects.Add(New Subject With {.Period = 2017, .Subject = "Biology", .Average = 9.72})        colSubjects.Add(New Subject With {.Period = 2018, .Subject = "Biology", .Average = 8.55})        gvRigs.ItemsSource = colSubjects    End Sub    Private Class Subject        Public Subject As String        Public Period As Integer        Public Average As Single    End ClassEnd ClassDoes anyone have any suggestions?