2012-04-06 17 views
3

私はSystem.ComponentModel.BindingListを私のアプリケーションのDataGridView.DataSourceとして使用しました。リストはかなり大きく、DataGridViewに描くのに数秒かかる。だから、私はデータバインディング(の絵を含むを含む)手続きが完了したら何かをする必要がある。私はDataBindingCompleteイベントを試しましたが、それはDataSourceプロパティに値を設定した直後に発生します。データバインディングが完了したときを知る

ありがとうございます。


UPDATE:

1.生成バインディングリストに設定►〜1秒

2. [データベースからデータを取得] DataSource[であったDataGridView]►〜5秒

+0

も ​​'DataBindingComplete'は、右のようだが、あなたが直面していると、それは特に – V4Vendetta

+0

親愛なる@ V4Vendettaをうまくいかなかった理由をどのような問題に展開する必要があります:私は上記のように、' DataBindingComplete'が良い作品。しかし、それが発生すると、 'DataGridView'はまだペイントする必要があります。塗装手順は時間がかかるプロセスで、いつ終了するか知りたいです。それが十分明確でない場合は教えてください。 – Mimi

+0

このイベントは、データソースの内容が変更された場合や、 'DataSource'、' DataMember'、または 'BindingContext'プロパティの値が変更された場合に発生します。このイベントは改善する必要があります。少なくともこのイベントは、サークル。 – Elshan

答えて

5

[表示データをペイント]►〜1秒を(DataBindingCompleteは今上昇する。)

結合説明したように簡単!

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.. 
    } 
} 
関連する問題