3

我在我的应用程序中使用了System.ComponentModel.BindingListas DataGridView.DataSource。该列表非常大,需要几秒钟才能在DataGridView. 所以,我需要知道数据绑定(包括绘画)程序何时完成以做一些事情。我尝试DataBindingComplete了事件,但它在为DataSource属性设置值后立即发生。

提前致谢。


更新:

1.生成绑定列表[从数据库中获取数据] ► ~1 sec

2.将其设置为DataSource [ Binding ] ► ~1 sec (DataBindingComplete现在升起。)

3.绘画[在中显示数据DataGridView ] ► ~5 sec

4

1 回答 1

5

就像描述的那样简单!

bool bindingCompleted = false;

void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.DataSource = bindingList1;
}

void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    bindingCompleted = true;
}

void dataGridView1_Paint(object sender, PaintEventArgs e)
{
    if (bindingCompleted)
    {
       bindingCompleted = false;

       // do some stuff.. 
    }
}
于 2012-04-06T07:01:24.070 回答