c# - 如何将列表中的所有项目绑定(bind)到DataGridView?

标签 c# .net winforms datagridview

我有一个 Zones 类,它有一个 Row 类型的对象列表。我想做的是让 DataGridView 显示我所有区域中的所有行。此代码仅提供飞机.区域列表中第一个区域的行。

BindingSource mySource = new BindingSource();  
mySource.DataSource = aircraft.zones;
mySource.DataMember = "rows";

Zone 类看起来像这样

public class Zone
{
    public List<Row> rows{ get; set; }
    public string name { get; set; }
    double arm;
    private int id;
}

我可以通过将所有行插入数据表然后绑定(bind)到该数据表来做到这一点,但我真的不想这样做,那么任何更改都不会更新。有什么想法如何让所有区域中的所有行都显示出来吗?

谢谢。

最佳答案

试试这个,我认为它可以工作,包括更新,但不能插入或删除:

mySource.DataSource = aircraft.zones.SelectMany(t => t.rows).ToList();

(并删除 DataMember 分配)

关于c# - 如何将列表中的所有项目绑定(bind)到DataGridView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18139727/

相关文章:

c# - 从轮廓生成HALCON区域

.net - .MSI 并不总是卸载以前的版本

c# - 将面板添加到用户控件时出错 : Object reference not set to an instance of an object

c# - 调整右下角的无边框窗口

c# - 如何在Unity3D Input Field UI组件中使用 "On Value Change"

c# - 在目录中组织命名空间和类

c# - Linq-to-SQL 连接 where 子句中的两列

c# - 如何在使用 shell 和选项卡的 .NET MAUI 应用程序中实现注销?

c# - 执行异步 lambda 的等待 Task.Run 的一个好的替代方案是什么?

c# - 避免只读文本框上的选项卡索引