使用数据源和实体框架填充以编程方式声明的 datagridview

2024-03-10

只是 c# winforms datagridview 存在一些小问题。这是我的场景

我正在使用实体框架,并尝试将某些实体模型绑定到我的 datagridview 数据源。

var query = from q in context.foo
select q;

dgv_Disp.DataSource = query.ToList();

当我在 GUI 中具有 datagridview 的表单类上运行上面的这段代码时,一切正常。 datagridview会自动生成列和行数。

但是,当我运行完全相同的代码时,除了 GUI 中没有 datagridview 之外,我只是以编程方式声明它,然后像上面的代码一样设置数据源。当我这样做时,不会生成任何行或列。

这两种不同的 datagridview 有什么区别?我知道表单类的designer.cs文件中设置了属性。但我尝试复制这些设置,但仍然无法填充。

我知道这可能很简单,但我根本无法弄清楚。如果有人能告诉我我做错了什么,那就太好了!

Edit

我已经使用 AutoGenerateColumns = true 但它没有任何区别。另外,我实际上并没有尝试显示此 datagridview,我只是将其绑定到实体对象,这样我就可以使用字符串索引访问其成员。但我不想查询数据库只是为了以 datagridview 特定格式获取信息,因为在我的实际场景中,我已经从之前的查询中获得了实体数据。我只是使用上面的代码作为示例。


你的代码应该可以工作。下面是绑定的示例代码List<T> to DataGridView,但您需要添加DataGridView到表格或其他面板(或容器)

    public Form1()
    {
        InitializeComponent();
        DataGridView gv = new DataGridView();
        gv.DataSource = new List<string>() { "sss", "aaa" }.Select(x => new { Name = x }).ToList();
        this.Controls.Add(gv); // add gridview to current form or panel ( or container), then only it will display 
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用数据源和实体框架填充以编程方式声明的 datagridview 的相关文章

随机推荐