无法从List<>获取数据填充数据网格视图

时间:2017-01-24 12:02:56

标签: c# list datagridview

从示例来看,这看起来应该非常简单,但出于某种原因,我无法从List<>获取数据。填充数据网格视图。我创建了一个包含3个字段的类,创建了一个类列表,并将列表分配给DGV的DataSource属性。

列表中正确填充了信息,DGV显示正确的行数,但所有文本框都是空白的。有人可以告诉我出了什么问题吗?

List<clsCHPChassis> myList = new List<clsCHPChassis>();

clsCHPChassis chassis1 = new clsCHPChassis("Rear Port", "Management", "192.168.1.1");
clsCHPChassis chassis2 = new clsCHPChassis("Front USB", "Local", "10.10.10.1");

myList.Add(chassis1);
myList.Add(chassis2);

dgv.DataSource = myList;

clsCHPChassis定义:

public class clsCHPChassis 
{
    public string Site = string.Empty;
    public string ChassisName = string.Empty;
    public string IP = string.Empty;

    public clsCHPChassis(string newSite, string newChassisName, string newIP)
    {
        Site = newSite;
        ChassisName = newChassisName;
        IP = newIP;
    }
}

3 个答案:

答案 0 :(得分:0)

列表本身不足以设置为数据源。您必须同时使用BindingSourse DataTable table = new DataTable("Table"); table.Columns.Add("Site", typeof(string)); table.Columns.Add("ChassisName", typeof(string)); table.Columns.Add("IP", typeof(string)); table.Rows.Add("Rear Port", "Management", "192.168.1.1"); table.Rows.Add("Front USB", "Local", "10.10.10.1"); dgv.DataSource = table;

另一个简单的解决方案是使用DataTable作为DataSourse

SELECT department_manager,customername 
FROM customer 
Inner Join department 
On customer.branch=department.branch  
WHERE customer.branch IN ( select branch from department);

答案 1 :(得分:0)

只有公共属性是数据绑定:

public class clsCHPChassis {
    public string Site { get; set; }
    public string ChassisName { get; set; }
    public string IP { get; set; }
}

答案 2 :(得分:0)

Slai能够解决问题。他的回答是,只有类的属性是数据绑定才是解决方案。将3个字段更改为类定义中的属性以修复它的属性!