C#WPF DataGrid - 添加项目时只显示空白行?

时间:2018-01-27 16:29:26

标签: c# wpf datagrid

我正在尝试将项添加到DataGrid,这与我使用x.Items.Add(x)时不同;对于ListView,它只显示空行。这个DataGrid一次只显示1行,并且必须是可编辑的,如果您认为有更好的方法而不是DataGrid,那么我愿意接受建议。我已经确定值的数量与列的数量匹配,这是一个问题,但似乎我仍然没有接近解决这个问题。我已经尝试过阅读许多类似的问题,但没有一个能解决我的问题,我在哪里错了?

rw_container是我用来将DataGrid插入的空白网格

private void AddGrid<T>(T obj) where T : ICategory
    {
        data = new DataGrid();

        PropertyInfo[] props = typeof(T).GetProperties();

        foreach (PropertyInfo x in props)
        {
            data.Columns.Add(new DataGridTextColumn() { Header = x.Name, Width = 100 });
        }


        //How to add the rows here?


        rw_container.Children.Add(data);
    }

1 个答案:

答案 0 :(得分:0)

缺少一些东西:

DataGridColumns需要Binding属性:

new DataGridTextColumn { Header = x.Name, Width = 100, Binding = new Binding(x.Name) }

和DataGrid需要项目:

data.Items.Add(obj);

然而,更简单的方法是设置ItemsSource并让Datagrid自动生成列:

{
    data = new DataGrid { ItemsSource = new[] { obj } };

    rw_container.Children.Add(data);
}

这样DataGrid甚至可以为bool属性创建DataGridCheckBoxColumns