我有一个动态创建的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!
有人可以告诉我这里可能出错的地方吗?
答案 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;
绑定源负责将数据与控件同步。您想要使用它,而不是尝试将表直接分配给控件。