2

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

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

谢谢

4

3 回答 3

1

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

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

(假设它绑定到一个数据集)

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

也可以。

于 2013-07-12T16:25:42.850 回答
1

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

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

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

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

于 2013-07-12T16:32:40.373 回答
0

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

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

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

于 2013-07-12T16:37:12.540 回答