3

私は自分のアプリでを使用しSystem.ComponentModel.BindingListました。DataGridView.DataSourceリストは非常に大きく、にペイントされるまでに数秒かかりますDataGridView。したがって、データバインディング(ペイントを含む)手順がいつ終了するかを知る必要があります。イベントを試しDataBindingCompleteましたが、プロパティに値を設定した直後に発生しDataSourceます。

前もって感謝します。


アップデート:

1.バインディングリストの生成[データベースからのデータの取得] ►〜1秒

2. DataSource [ Binding ] ►〜1秒に設定しますDataBindingComplete現在、が発生しています)。

3.ペイント[データの表示DataGridView ] ►〜5秒

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 に答える