【问题标题】:How to set List<List<double>> (Or two dimensional array) as data source to DataGrid如何将 List<List<double>>(或二维数组)设置为 DataGrid 的数据源
【发布时间】:2012-03-08 17:31:45
【问题描述】:

我有带有值和 wpf 数据网格的 List&lt;List&lt;double&gt;&gt;
如何将其设置为我的 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;
}

这只会添加标题和空行。

【问题讨论】:

  • 您正在向列添加标题,但您没有绑定任何内容。

标签: c# wpf datagrid matrix datasource


【解决方案1】:

你可以去两个方向,但你需要选择一个。

一个:

创建数据表(不是列)。使用标题来命名 DataTable 中的列。将 DataTable 与自动生成列绑定。

两个:

不要创建数据表。绑定到列表(使用列表作为属性名称是一种不好的做法并且令人困惑)。然后将列内容绑定到类似 List[0]、List[1] 的内容。我不确定语法是什么,因为我已经完成了 List 其中 MyClass 有一个公共 List MyRows 然后内容绑定的语法是 MyRows[0], MyRows[1] ....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多