C# DataBindingComplete被多次调用

C# DataBindingComplete被多次调用,c#,winforms,data-binding,datagridview,C#,Winforms,Data Binding,Datagridview,我正在用c#创建一个windows应用程序 我有1个Datagridview,在我设置了它的数据源之后,它应该有3行 我在Datagrdview上附加了两个事件Habdler void dgvProductList_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)<br> { //this gets called 4 times } private void dgvProductList_DataBind

我正在用c#创建一个windows应用程序

我有1个Datagridview,在我设置了它的数据源之后,它应该有3行

我在Datagrdview上附加了两个事件Habdler

void dgvProductList_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)<br>
{
     //this gets called 4 times
}

private void dgvProductList_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{            
    //gets called 2 times.
}
void dgvProductList_RowsAdded(对象发送方,DataGridViewRowsAddedEventArgs e)
{ //这会被调用4次 } 私有void dgvProductList_数据绑定完成(对象发送方,DataGridViewBindingCompleteEventTarget e) { //被调用2次。 }
为什么会发生这种情况?我将如何解决


提前感谢…

我相信这取决于您实际设置数据源的其他方法。在我看来,要么两次设置数据源,要么两次调用DataBind,在每个DataBind上,实际上在DataGridView中有两行,因此总共有4行

一些额外的代码可能会有帮助

尝试以下操作:在代码中搜索DataBind()、DataSource()等,并确保只在适当的位置调用它

此外,假设数据绑定之间发生了一些变化,那么调用两次数据绑定并不一定是坏事。。。一些状态的改变。。。没有背景真的很难说。

当数据源的内容更改或数据源数据成员绑定上下文属性的值更改时,会引发此事件


例如,如果您正在分配数据源,然后添加3行-->4次事件触发

我遇到了相同的问题。我绝对肯定我分配了DataSource属性一次。尽管我传递的数据非常大(超过10k行),但所有4个事件都会同时触发。只有一次读取数据表缓冲区,而不是一次分配操作。仍有4个“DataBindingComplete”被激发。要解决此问题,请参阅我的评论。当数据绑定完全完成时,是否会调用另一个事件?