Как настроить список(Или двумерный массив) в качестве источника данных для DataGrid - PullRequest
0 голосов
/ 08 марта 2012

У меня есть List<List<double>> со значениями и сеткой данных wpf.
Как я могу установить это как dataSource для моей dataGrid?

Я пробовал следующее:

public class DataContainer
{
    public List<List<double>> List { get; set; }
    public List<string> Headers { get; set; }
}

private void InitializeGrid(DataContainer container)
{
    var table = new DataTable();

    foreach (var header in container.Headers)
    {
       dataGrid1.Columns.Add(new DataGridTextColumn(){Header = header});
       table.Columns.Add(header);
    }
    foreach (var lst in container.List)
    {
       var dr = table.NewRow();

       var array = (from o in lst
                    select (object)o).ToArray();

       dr.ItemArray = array;

       table.Rows.Add(dr);
    }
    foreach (var row in table.Rows)
    {
        dataGrid1.Items.Add(row);
    }

   // dataGrid1.ItemsSource = table.Rows;
}

И это только добавляет заголовки и пустые строки.

1 Ответ

0 голосов
/ 08 марта 2012

Вы можете пойти в двух направлениях, но вам нужно выбрать одно.

One:

Создайте таблицу данных (не столбцы).Используйте заголовки для именования столбцов в DataTable.Свяжите DataTable с автоматически генерируемыми столбцами.

Два:

НЕ создавайте DataTable.Привязка к списку (использование списка в качестве имени свойства является плохой практикой и сбивает с толку).Затем вы связываете содержимое столбца с чем-то вроде List [0], List [1].Я не уверен, что синтаксис, как я сделал List, где MyClass имеет общедоступный список MyRows, а затем синтаксис для привязки содержимого MyRows [0], MyRows [1] ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...