【问题标题】:DataGridView RowsAdded event not fired?未触发 DataGridView RowsAdded 事件?
【发布时间】:2013-11-02 15:25:26
【问题描述】:

我的表单上有一个表格布局,我在其中使用 Datagrid 来显示数据。第一次为它分配数据源时,它运行良好,但是当我第二次将数据源分配给 DataGrid 时,它不会调用 Datagrid 的 RowsAdded 事件,而 Datagrid 不会显示除标题之外的任何内容,Datagrid 显示 RowCount 为 0。

我在这里也发现了类似的问题:

Datagridview rowcount showing 0 even when there is a valid datasource

编辑#1

我的代码是

gridProjectEdit.DataSource = null;
gridProjectEdit.Columns.Clear();
gridProjectEdit.Rows.Clear();            
gridProjectEdit.Refresh();

if(dt!=null)
dt.Clear();
dt=methodCaller.GetProjectData(); //get the data
gridProjectEdit.DataSource = dt;  //copying datatable

【问题讨论】:

  • 请用代码更新问题
  • @Damith 请查看更新后的帖子。
  • 我每次都使用上述代码分配数据源。
  • 第二次检查DataTable有没有记录?
  • 我检查了它是否包含行,请参阅stackoverflow.com/questions/11212086/…

标签: c# winforms data-binding datagridview


【解决方案1】:

当使用 dataGridView.Rows.Add() 方法添加行时,会触发 Rows added 事件。 您应该使用 DataSourceChanged 事件来触发 dataGridView 的数据源的更改。 也结帐http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.datasourcechanged.aspxhttp://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowsadded.aspx

希望这会有所帮助!

【讨论】:

  • RowsAdded 也会在 DataSource 更改时触发(当然,如果它有一些数据)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-18
  • 1970-01-01
  • 1970-01-01
  • 2013-06-20
相关资源
最近更新 更多