我想在数据网格视图中逐列添加数据。
我在运行时添加列,然后我想向其添加数据。
也可能是列调整自身大小以适应窗口。
例如 - 如果有10列,那么10列应填充窗口,否则如果有5列,那么5列应填充窗口
答案 0 :(得分:1)
以下是一个简单示例的代码,可以执行您想要的操作。它来自一个简单表单的代码,上面有一个DataGridView控件。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
BindingList<BindingClass> data = new BindingList<BindingClass>() {
new BindingClass { Name = "joe", Surname = "bloggs" },
new BindingClass { Name = "sue", Surname = "bloggs" } };
dataGridView1.DataSource = data;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}
}
public class BindingClass
{
public string Name { get; set; }
public string Surname { get; set; }
}
}
我已创建了一个用于我的数据的自定义对象 - 这是您的列表所在的位置。绑定到DataGridView数据源的列表的所有公共属性都将创建为列 - 然后您可以隐藏不需要的列。
在我的示例中,我选择使用BindingList<T>
而不是List<T>
- 这通常是首选,因为它可以让您进行编辑,并且可以扩展为支持排序。
我还将网格的AutoSizeColumnsMode
设置为Fill
- 还有其他几个选项,包括分别设置每列的宽度或填充属性,这些也可以通过设计器进行设置。 / p>
我不建议使用ListView
,因为它不提供自动数据绑定。