2010-11-05 3 views
1

Нагрузка на форму, мой datagridview отображает данные. когда пользователь нажимает на кнопку удаления, она удаляет один из строк в источнике данных:Почему datagridview исчезает после повторного обновления дважды?

private void btnDelete_Click(object sender, EventArgs e) 
     { 
      Int32 selectedRowCount = 
     dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected); 
      if (selectedRowCount == 1) 
      { 


        qResults.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index); 
        chart1.DataSource = qResults; 
        InitializeChart(); 

        dataGridView1.Columns.Clear(); 
        dataGridView1.DataBindings.Clear(); 
        dataGridView1.DataSource = qResults; 


      } 
     } 

первый раз, когда я нажмите на эту кнопку, она работает. он удаляет datapoint из источника и обновляет диаграмму. однако во второй раз, когда я нажимаю его, он полностью вытирает datagridview и отображает НИЧЕГО. , но учтите, что диаграмма отображена правильно

Кто-нибудь знает, что я чувствую, неправильно?

ответ

2

Вы пытались полностью комментировать код диаграммы и видеть, показывает ли ваш datagridview все то же поведение?

Также: что такое qResults? Тип здесь не ясен. Если вы используете источник данных, такой как BindingSource, вам может не потребоваться сброс источника данных datagridview и очистка его привязок и столбцов; BindingSource с datagridview позаботится об этом для вас.

Если qResults является DataTable, попробуйте использовать BindingSource. Установите DataTable в качестве источника данных BindingSource, затем установите BindingSource в качестве источника данных datagridview, а затем посмотрите, что происходит с вашим удалением.

Наконец, у вас есть явный код привязки данных где-нибудь или у вас есть автоматический генерация столбца datagridview?

+0

pelaz: datagridviews не имеют bindingsource, это winform –

+0

@pelaz У меня есть явное связывание, подобное этим даннымGridView1.DataSource = qResults; –

+0

@ i am a girl: Вы уверены, что у DGVs нет BindingSource? Это не * требуется *, но использование BindingSource делает привязку данных намного проще (как и редактор перетаскивания). System.Windows.Forms.BindingSource - проверьте это: http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.aspx –

Смежные вопросы