即使我有数据源,Datagridview行也是0

时间:2013-07-12 15:55:03

标签: c# .net

我以编程方式创建数据网格视图并将数据绑定到它。由于某种原因,行是空的。看起来很奇怪,但我不想显示Datagrid视图,只是将它传递给一个类,它将数据提取为Excel和CSV。

 this.DataGridView = new System.Windows.Forms.DataGridView();

  System.Windows.Forms.BindingSource bindingSource = new System.Windows.Forms.BindingSource();
            bindingSource.DataSource = DataSource;

  this.DataGridView.AutoGenerateColumns = autoGenerateColumns;
  this.DataGridView.DataSource = bindingSource;
  Int32 rowCount = this.DataGridView.Rows.Count; // 0!

创建数据源之后有什么办法可以填充行吗?

谢谢

3 个答案:

答案 0 :(得分:1)

我想知道为什么你需要一个DataGridView而不首先在UI上显示它。我可以提出几种替代方案

  1. 放开DataGridView并使用DataTable / IEnumerable来保存数据。两者都可以为您提供 计数。
  2. 如果您坚持保留DataGridView,那么
  3. (假设它绑定到DataSet)

    ((DataSet)dataGridView1.DataSource).Tables[0].Rows.Count
    

    也可以。

答案 1 :(得分:1)

  

我相信DataGridViews在实际渲染之前不会绑定/包含任何行。

@ paul.abbott.wa.us是对的。

您可以移动计算 DataGridView.DataBindingComplete 事件

中行数的代码

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.databindingcomplete.aspx

答案 2 :(得分:0)

要查看数据网格,您应该将其添加到父控件集合中:

DataGridView = new System.Windows.Forms.DataGridView();
Controls.Add(DataGridView);

目前,您的网格没有任何父网格,无法显示。