2017-02-09 5 views
2

У меня есть DataGridView, который получает информацию из BindingList. Когда программа запускается, DGV должен казаться совершенно пустым без каких-либо данных о строках. Однако вместо этого он создает строку с несколькими значениями в некоторых ячейках. В моем запуске формы, я включилDataGridView & datasource не очищается

ExpenseList = new BindingList<ExpenseReportBackBone>();    
      dataGridViewPurchaseData.DataSource = ExpenseList; 
      ExpenseList.Clear(); 
      dataGridViewPurchaseData.Rows.Clear(); 

, чтобы попытаться опорожнить его, но он все еще выглядит как скриншот показывает. Почему это не открытие пустой DGV?

enter image description here

+3

Вы пытались установить 'AllowUsersToAddRows' в false в' DataGridView'? – JohnG

+0

Хорошо, да, это исправлено. Странно, что это влияет на это таким образом ... если вы хотите опубликовать ниже, я могу отметить ответ –

ответ

2

Значение AllowUsersToAddRows установлено в качестве значения по умолчанию для DataGridView, и то, что вы видите, это вновь добавленная строка.

-1

я не знаю, почему его не пуст, когда вы запускаете программу, но попытаться очистить его первый Null источник данных:

this.dataGridView.DataSource = null; 

и после четких рядов

this.dataGridView.Rows.Clear(); 

если вы используете BindingList

DataGrid.DataSource = null; 
DataGrid.DataBind(); 
+0

Это не решит проблему пользователя. – LarsTech

+0

его, чтобы сделать datagrid пустым, когда он запускает программу, ее не пустая причина, есть что-то в форме загрузки, которую нужно удалить. – Fawzidi

+0

Посмотрите на код пользователя - они создали новый список, поэтому он уже пуст. Установка источника данных в значение null приведет к удалению столбцов. 'DataBind();' для ASP, а не для WinForms. – LarsTech

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