知道何时完成数据绑定

3
我在我的应用程序中使用了System.ComponentModel.BindingList作为DataGridView的DataSource。这个列表相当大,需要几秒钟才能在DataGridView上绘制出来。所以,我需要知道数据绑定(包括绘图)过程何时结束,以便进行一些操作。我尝试使用DataBindingComplete事件,但它发生在将值设置给DataSource属性之后。
谢谢提前。
更新:
1. 生成绑定列表[从数据库获取数据] ► ~1秒 2. 设置它到DataSource【绑定】► ~1秒(现在触发DataBindingComplete事件。) 3. 绘图【在DataGridView中显示数据】► ~5秒

好的,“DataBindingComplete”似乎没问题,但您需要详细说明遇到了什么问题,以及为什么它没有特别奏效。 - V4Vendetta
亲爱的@V4Vendetta:如我上面所提到的,DataBindingComplete工作得很好。但是当它被触发时,DataGridView仍然需要绘制。绘制过程是一个耗时的过程,我想知道何时完成。如果不够清楚,请告诉我。 - Mehdi
当数据源的内容更改或者DataSourceDataMemberBindingContext属性的值更改时,将会引发此事件。这个事件必须得到改进。至少在一个运行周期内该事件被触发了4次。 - Elshan
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.. 
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接