小编rym*_*urf的帖子

数据绑定如何与DataTable一起使用?

假设我有一个WinForms DataGridView控件,我将数据绑定到自定义类型的IList,如下所示:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

private void Form1_Load(object sender, EventArgs e)
{
    var data = new ArrayList();

    data.Add(new Person("Bob", 25));
    data.Add(new Person("Alice", 23));

    this.dataGridView1.DataSource = data;
}
Run Code Online (Sandbox Code Playgroud)

这将显示列表项,列名称为"名称"和"年龄",从列表项的公共属性中巧妙地推断(通过反射).(根据我的测试,第一项.)

但是如果我使用DataTable做同样的事情:

DataTable dt = new DataTable();

dt.Columns.Add("Name");
dt.Columns.Add("Row");

dt.Rows.Add("Bob", 25);
dt.Rows.Add("Alice", 23);

this.dataGridView1.DataSource = dt;
Run Code Online (Sandbox Code Playgroud)

... DataGridView如何知道如何使用DataTable的列而不是其公共属性?DataTable和DataRow似乎都没有实现提供此信息的任何接口.或者DataGridView是否了解DataTable类型,并以不同方式处理这种类型的数据源?

我问的原因是因为我想实现我自己的"动态"数据源类型,它不依赖于固定属性.

.net c# winforms

5
推荐指数
1
解决办法
815
查看次数

标签 统计

.net ×1

c# ×1

winforms ×1