如何以编程方式将行和单元格连续添加到数据网格?

时间:2018-03-01 19:47:00

标签: c# wpf

我有一个方法,除了一些对象,并使用反射获取它的每个属性。属性名称设置为列标题,并绑定到应该位于其下的单元格中的值。正在显示标题,但单元格中的值不是。当我尝试向datagrid添加一个值,将它绑定到以前设置的列时,它不会出现在表中。 告诉我,我在这里做错了,拜托!

以下是此方法的示例:

private void Output<T>(T obj)
    {
        foreach (var prop in obj.GetType().GetProperties())
        {
            var column = prop.Name;
            CarDetailsGrid.Columns.Add(new DataGridTextColumn()
            {
                Header = column,
                Binding = new Binding(column)
            });

            var value = prop.GetValue(obj);
            CarDetailsGrid.Items.Add(new { column = value != null ? value : "" });
        }
    }

1 个答案:

答案 0 :(得分:0)

添加行和列有所不同。尝试执行以下操作:

private void Output<T>(List<T> objList)
{
    foreach (var prop in T.GetProperties())
    {
        var column = prop.Name;
        CarDetailsGrid.Columns.Add(new DataGridTextColumn()
        {
            Header = column,
            Binding = new Binding(column)
        });
    }

    if (objList != null && objList.Any())
    {
        foreach(var currObj in objList)
        {
            CarDetailsGrid.Items.Add(currObj);
        }
    }
}