即使存在有效的数据源,Datagridview rowcount也会显示0

时间:2012-06-26 16:43:50

标签: winforms data-binding datagridview rowcount

我有一个动态创建的DataGridView,它有一个绑定了一行的有效DataSource。但是,当我在DataGridView上执行rowcount时,它返回0。

dgResult.DataSource = resultDt; // a datatable containing one row
flowLayoutPanel.Controls.Add(dgResult); 
int rows = dgResult.Rows.Count; // returning 0 always!

有人可以告诉我这里可能出错的地方吗?

2 个答案:

答案 0 :(得分:5)

我发现了这个问题。我在未选中的选项卡页面中显示网格。除非网格可见,否则它不会引发rowadded事件(这很奇怪!)durnig数据绑定。我在执行数据绑定之前选择了标签页,并且rowcount有效。

答案 1 :(得分:2)

请改用此代码:

BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = resultDt;

dgResult.DataSource = bindingSource;
flowLayoutPanel.Controls.Add(dgResult); 

var c = dgResult.Rows.Count;

绑定源负责将数据与控件同步。您想要使用它,而不是尝试将表直接分配给控件。