WPF Datagrid将List <double>添加为列

时间:2018-05-28 16:30:07

标签: c# wpf datagrid

我不是编程的新手,但我在WPF DataGrid中遇到了许多意想不到的问题。 让我们首先说我想以编程方式为每个集合添加一列,而不需要任何绑定。

List<List<double>> collection = new List<List<double>> {
    new List<double>() {1.5, 2.5, 3.5},
    new List<double>() {1.5, 2.5},
    new List<double>() {1.5, 2.5, 3.5, 4.5}
};

我想要3列,每列一列,4行。显然其中一些将是空的。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我使用的是DataTable,它可能会为你想要做的其他事情提供更多的灵活性,比如编辑......

DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("Value1", typeof(double));
DataColumn dc2 = new DataColumn("Value2", typeof(double));
DataColumn dc3 = new DataColumn("Value3", typeof(double));
DataColumn dc4 = new DataColumn("Value4", typeof(double));

dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Columns.Add(dc4);

DataGrid dg = new DataGrid()
{
    ItemsSource = dt.DefaultView,
    Background = Brushes.Wheat,
    AlternatingRowBackground = Brushes.AliceBlue,
    VerticalScrollBarVisibility = ScrollBarVisibility.Auto,
    Height = 500,
    Width = 400,
};

dt.Rows.Add(1.5, 2.5, 3.5);
dt.Rows.Add(1.5, 2.5, null);
dt.Rows.Add(1.5, 2.5, 3.5, 4.5);

MyCanvas.Children.Add(dg);  // A canvas in the XAML
Canvas.SetTop(10,dg);
Canvas.SetLeft(10,dg);