DataBindingComplete вызывается несколько раз - PullRequest
5 голосов
/ 06 мая 2009

Я создаю приложение для Windows на C #,

У меня есть 1 Datagridview, и после того, как я установил его источник данных, он должен иметь 3 строки.

Я прикрепил 2 Хабдлеров событий к Datagrdview

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.
}

Почему это происходит и как я могу это исправить?

Заранее спасибо ...

Ответы [ 2 ]

6 голосов
/ 24 июня 2009

Из MSDN Online DataBindingComplete Event

Это событие возникает, когда изменяется содержимое источника данных или когда значение Источник данных , DataMember или BindingContext изменения свойств.

например. Если вы назначаете источник данных, а затем добавляете 3 строки -> 4 раза, событие сработало

0 голосов
/ 06 мая 2009

Я полагаю, что это зависит от других ваших методов, где вы на самом деле настраиваете источник данных. Мне кажется, что вы либо устанавливаете DataSource дважды, либо дважды вызываете DataBind, и на каждом DataBind вы фактически получаете две строки в DataGridView, то есть всего 4.

Может помочь какой-то дополнительный код ...

Попробуйте кое-что попробовать: найдите в вашем коде DataBind (), DataSource () и т. Д. И убедитесь, что он вызывается только в соответствующих местах.

Кроме того, не обязательно плохо вызывать DataBind дважды, предполагая, что между привязками данных что-то меняется ... некоторое изменение состояния ... действительно трудно сказать без фона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...