我正在用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.
}
为什么会发生这种情况?我将如何解决这个问题?
提前致谢...
答案 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()等,并确保仅在适当的位置调用它。
此外,假设数据绑定之间发生了一些变化,数据绑定被调用两次并不一定是坏事......状态的某些变化......如果没有背景,真的很难说。