c# – 将多个列表绑定到DataGridView

我有两个静态列表,它们与两个按钮字段一起绑定到DataGridView.我只能绑定一个列表和一个按钮字段.是否可以将多个列表绑定到DataGridView?

ServiceController objSAVAdminService = new ServiceController("SAVAdminService");
ServiceController objSAVService = new ServiceController("SAVService");
ServiceController objPPVService = new ServiceController("PPVService");
ServiceController objMLLService = new ServiceController("MLLService");

List<string> ServiceName = new List<string>();
List<string> ServiceStatus = new List<string>();

ServiceName.Add(objSAVService.ServiceName.ToString());
ServiceName.Add(objSAVAdminService.ServiceName.ToString());
ServiceName.Add(objPPVService.ServiceName.ToString());
ServiceName.Add(objMLLService.ServiceName.ToString());

ServiceStatus.Add( objSAVService.Status.ToString());
ServiceStatus.Add( objSAVAdminService.Status.ToString());
ServiceStatus.Add( objPPVService.Status.ToString());
ServiceStatus.Add( objMLLService.Status.ToString());

我需要将这两个列表绑定到DataGridView,并且每行上还有两个按钮来启动或停止相应的服务.

最佳答案
开箱即用,不支持数据绑定DataGridView和两个列表.我可以看到两个主要选项:

>放弃数据绑定 –
您不需要为DataGridView DataSource属性设置列表,并依赖DataBinding来使一切正常工作.相反,您可以在非绑定模式下工作并编写代码来自行移回数据.在MSDN上看一下这个简单的例子.
>创建自定义对象 – 如果您希望方便数据绑定,可以创建一个组合两个列表的对象,然后绑定到该对象.如果您只想要单向数据绑定(当DataGridView更改时不更新列表中的数据),那么您甚至可以使用一个简单的LINQ查询来执行此操作.否则,你可以编写某种自定义对象作为两个列表的包装器 – 如果你设计得好,你应该可以在两个列表上拥有完全的双向数据绑定.

转载注明原文:c# – 将多个列表绑定到DataGridView - 代码日志