2009-05-06 61 views
5

私はWindowsアプリケーションをC#で作成しています。DataBindingCompleteが複数回呼び出されています

私は1つのDatagridviewを持っています。DataSourceを設定した後、3行にする必要があります。私はDatagrdviewに2イベントHabdlersを添付した

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

私は同じ問題を抱えています。私はDataSourceプロパティを一度割り当てます。私が渡すデータが巨大(10k行以上)しているにもかかわらず、4つのイベントが同時に発生します。単一の割り当て操作よりも、DataTableバッファへの単一の読み取りがあります。まだ4 "DataBindingComplete"が発砲されました。 – Harry

+0

この問題を解決するには、私のコメント[ここ](http://stackoverflow.com/questions/24329964/alternative-to-datagridview-databindingcomplete-event)を参照してください。 – nam

答えて

0

私はそれはあなたが実際にDataSourceを設定しているあなたの他の方法に依存信じています。 DataSourceを2回設定するか、DataBindを2回呼び出しているように思えます。各DataBindでは、実際にDataGridViewに2つの行が追加されます。しようとする

いくつかの追加のコードが役立つかもしれない...

いくつかのもの:あなたのコード内のDataBind()、データソース()などを検索し、それが唯一の適切な場所に呼び出されています確認してください。

また、データバインドの間で何かが変わったと仮定して、データバインドを2回呼び出すことは必ずしも悪いことではありません。状態の変更...背景なしでは本当に難しいです。

6

From msdn online DataBindingComplete Event

このイベントは場合コンテンツデータソースの変更の又はデータソースの値、データメンバー、又はBindingContextをプロパティが変更上昇します。

など。データソースを割り当てて3行追加すると>イベントが4回発生する

関連する問題