Как использовать список (Of T) в качестве источника элементов для WPF DataGrid?

Я хотел быстро отобразить список (OF String) в DataGrid (динамически), поэтому Я подумал, что

myDataGrid.ItemsSource = myList

будет быстрым и простым способом сделать это, так как это отлично работает для DataTable:

myDataGrid.ItemsSource = myDataTable.DefaultView

My DataGrid имеет свойство AutoGenerateColumns, установленное на «True». И для datatable это работает нормально, но когда я назначаю List (Of String) для ItemsSource, имя моего столбца отображается как `` Длина '', а отображаемые данные представляют собой целые числа, которые представляют собой количество символов в каждом элементе String в списке , а не фактический элемент String.

Что я делаю не так?

РЕДАКТИРОВАТЬ

Мой список тестов создается следующим образом:

Dim myList As New List(Of String)
  For i As Int32 = 1 To 25
  myList.Add("Item #" & i)
Next

Следующие 2 метода дают точно такие же результаты.

Создать CollectionView:

Dim cv = CType(CollectionViewSource.GetDefaultView(myList), CollectionView)
DataGrid1.ItemsSource = cv

Просто используйте Список:

DataGrid1.ItemsSource = myList

Оба этих метода отображают один столбец в DataGrid. Столбец называется «Длина» и содержит целые числа, соответствующие длине каждой строковой записи.

РЕДАКТИРОВАТЬ

Перевод ответа «testalino» в VB:

DataGrid1.ItemsSource = myList.Select(Function(s) New With {.Value = s}).ToList
6
задан GSTD 20 October 2010 в 17:51
поделиться