如何知道DataGridView的数据绑定何时*完全*完整?

时间:2013-02-15 13:52:16

标签: .net winforms datagridview

我对这个DataGridView控件感到非常沮丧。我真正想做的只是确保网格最初以某种默认方式排序(尽管如果需要,用户可以对其进行不同的排序)。

我尝试分配DataSource然后调用Sort方法。这有时会起作用,但有时会导致InvalidOperationException。调试它似乎表明它不起作用的时间网格没有行或列。这种行为的间歇性使我猜测正在进行竞争,所以当我分配数据源时,网格可能不会同步绑定,而是在后台执行。

所以我查看MSDN文档,发现有一个事件DataBindingCompleted。这看起来很正确,我附上了一个处理程序。事件在网格本身上声明,因此您认为这意味着整个控件的所有数据绑定都已完成。然而,每次我实际将新数据绑定到网格时,它会激发 lot 次(我不知道,但每个单元格猜一次)。

我想我可以忍受这个;开销可能不是很大,因为如果被要求对自己进行排序“col1 asc”并且它已经按照这种方式排序,那么网格可能足够聪明,根本不做太多。 (如果没有,我总是可以自己进行测试而不是调用sort,除非我真的要改变一些东西。)不过,我真的想知道是否真的没有办法知道数据绑定何时真正完成。 / p>

1 个答案:

答案 0 :(得分:1)

我们通常在处理绑定后的详细信息(例如排序)时使用DataBound事件,并且多年来一直使用它而没有描述行为。也许这是你正在寻找的事件?