将WPF DataGrid绑定到List<List<int>>对象

3

我尝试将一个 WPF中的DataGrid绑定 到一个 列表的列表

我正在这样做:

private List<List<int>> _rows = new List<List<int>>();

private void WindowLoaded(object sender, RoutedEventArgs e)
{
      for (int i = 0; i < 2; i++)
      {
           var row = new List<int>();

           for (int j = 0; j < 2; j++)
           {
               row.Add(j);
           }

           _rows.Add(row);
      }

      var dg1 = new DataGrid();

      for (int i = 0; i < 2; i++)
      {
           var col = new DataGridTextColumn();
           col.Header = i.ToString();
           dg1.Columns.Add(col);
      }

      dg1.ItemsSource = _rows;
      this.LayoutRoot.Children.Add(dg1);
}

当我运行程序时,DataGrid仍然是空的,什么都没有发生。如何做才能让它工作?
2个回答

0

你实际上没有将 int 添加到任何 List 中。你添加了一个 List<Int> 但从未添加过 Int

你迭代行(而不是列)(_row.count 将给出行数),以添加 dg1 列。

它需要更多的帮助,但这是一个开始。

for (int j = 0; j < 2; j++) 
{ 
    var row = new List<int>(); 

    for (int i = 0; i < 2; i++) 
    {
        row.add(i);
    }

    _rows.Add(row); 
} 

谢谢@BalamBalam的帮助,我漏了那个,我修改了代码,但即使如此它仍然不起作用,它给我一个包含两个额外列(容量和计数)的数据网格,我不知道如何将绑定到列表的列表完成。 - user1038031
好的,我做过类似的事情并使其工作。尝试使用List<array>。如果您查看我的答案,其中有一个我这样做的示例。 - paparazzo
1
这是动态列的答案。http://stackoverflow.com/questions/6959600/wpf-display-grid-of-results-with-dynamic-columns-rows/6961874#6961874 - paparazzo

0

你不能直接将值类型列表绑定到 WPF DataGrid。
你需要为int创建一个包装类并指定绑定,如this answer中所述。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接