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

本文关键字:Datagridview 数据源 | 更新日期: 2023-09-27 18:22:04

我正在以编程方式创建一个数据网格视图并将数据绑定到它。由于某些原因,行是空的。虽然看起来很奇怪,但我不想显示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!

在创建数据源之后,有什么方法可以让行填充吗?

感谢

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

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

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

您可以在DataGridView.DataBindingComplete事件中移动对行计数的代码

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

我想知道为什么您需要一个DataGridView而不在UI上显示它。有几个替代品我可以建议

  1. 放开DataGridView并使用DataTable/IEnumerable来保留数据。两者都可以为您提供计数
  2. 如果你坚持保留DataGridView,那么

(假设其绑定到数据集)

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

也会起作用。

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

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

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