【问题标题】:Bind Multiple Lists to a DataGridView将多个列表绑定到 DataGridView
【发布时间】:2011-06-20 06:10:50
【问题描述】:

我有两个要绑定到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 以及每行上的两个按钮来启动或停止相应的服务。

【问题讨论】:

    标签: c# winforms list datagridview .net-2.0


    【解决方案1】:

    开箱即用不支持数据绑定DataGridView 和两个列表。我可以看到您可以使用的两个主要选项:

    1. 放弃数据绑定 -- 您无需为DataGridView DataSource 属性设置一个列表并依赖DataBinding 来让一切正常工作。相反,您可以在 unbound 模式下工作并编写代码来自己前后移动数据。在MSDN 上查看这个简单的示例。

    2. 创建一个自定义对象 -- 如果你想要数据绑定的便利,你可以创建一些组合两个列表的对象,然后绑定到那个.如果您只想要一种方式的数据绑定(当DataGridView 更改时不更新列表中的数据),那么您甚至可以使用一个简单的 LINQ 查询来完成此操作。否则,您可以编写某种自定义对象来充当两个列表的包装器 - 如果您设计得好,您应该能够对您的两个列表进行完整的双向数据绑定。

    【讨论】:

      【解决方案2】:

      还有一个选择, 因为您使用的是 2 个字符串列表, 你可以这样做

      List<string> BindList = new List<string>();
      BindList.AddRange(ServiceName);
      BindList.AddRange(ServiceStatus);
      foreach(string item in BindList)
      {
      Datagridview1.Rows.Add(item.objSAVService,item.objSAVAdminService.....)
      }
      

      【讨论】:

        猜你喜欢
        • 2011-08-08
        • 1970-01-01
        • 1970-01-01
        • 2018-04-20
        • 1970-01-01
        • 2012-09-14
        • 2011-05-07
        • 2014-08-18
        • 2010-11-16
        相关资源
        最近更新 更多