【问题标题】:Adding data to DataGridView Column wise将数据添加到 DataGridView Column wise
【发布时间】:2012-05-13 19:49:24
【问题描述】:

我想在数据网格视图列中添加数据。

我在运行时添加列,然后我想向其中添加数据。

列也有可能调整自己的大小以适应窗口。

例如-如果有 10 列,则 10 列应填满窗口,否则如果有 5 列,则 5 列应填满窗口

【问题讨论】:

  • 添加新列时网格中是否已有数据?如果是这样,数据如何到达那里,网格是未绑定还是绑定到数据源,如果是数据源,它的类型是什么?
  • @DavidHall 我在网格中没有任何数据。网格是空的。现在我必须向其中添加一列并向该列添加值。值在列表中跨度>
  • @DavidHall 如果可以在 ListView 中完成,那也没关系。我只需要显示数据...提前谢谢
  • 啊,好吧,所以您只有一个要显示给用户的值(字符串?)列表,并且永远不会显示另一列?您是否希望用户能够编辑数据?并且能够添加新项目。很抱歉有 20 个问题,但它们有助于了解建议的正确控制和绑定方法。
  • 其实从第二个关于缩放列的问题来看,听起来你的list有时候可以有多个item呢?

标签: winforms datagrid datagridview runtime


【解决方案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&lt;T&gt; 而不是 List&lt;T&gt; - 这通常是首选,因为它可以让您进行编辑并且可以扩展以支持排序。

我还将网格的AutoSizeColumnsMode 设置为Fill - 还有其他几个选项,包括单独设置每列的宽度或填充属性,这些也可以通过设计器进行设置。


我不建议使用ListView,因为它不提供自动数据绑定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多