DataBindingComplete被多次调用

时间:2009-05-06 07:56:24

标签: c# winforms data-binding datagridview

我正在用c#,

创建一个Windows应用程序

我有1个Datagridview,在设置它的DataSource之后它应该有3行。

我已将2个事件Habdlers附加到Datagrdview

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.
}

为什么会发生这种情况?我将如何解决这个问题?

提前致谢...

2 个答案:

答案 0 :(得分:6)

From msdn online DataBindingComplete Event

  
    

当数据源的内容发生变化或数据源 DataMember 的值时,会引发此事件BindingContext 属性更改。

  

E.g。如果要分配Datasource,然后添加3行 - &gt; 4次事件被解雇

答案 1 :(得分:0)

我认为这取决于您实际设置DataSource的其他方法。在我看来,你要么设置DataSource两次,要么两次调用DataBind,并且在每个DataBind上,你实际上在DataGridView中得到两行,因此总共有4行。

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

要尝试的一些事项:在代码中搜索DataBind(),DataSource()等,并确保仅在适当的位置调用它。

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