У меня есть DataGridView, привязанный к DataTable.
Позже я добавлю новую колонку кнопок прямо в DGV. В следующий раз, когда я обновляю таблицу, я хочу удалить все предыдущие данные из DGV.
Для таблицы я просто делаю var table = new DataTable();
, но делаю это с помощью DataGridView, когда DGV определен как локальный внутри метода, поэтому он никогда не отображается в форме.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//dataGridView1 = new DataGridView(); //<-- uncommenting this line breaks the form's dgv from displaying anything
DataTable table = new DataTable();
table.Columns.Add("C_" + table.Columns.Count);
table.Rows.Add("R1");
table.Rows.Add("R2");
dataGridView1.DataSource = table;
DataGridViewButtonColumn oCol = new DataGridViewButtonColumn();
oCol.Name = "Buttons";
oCol.Text = "(...)";
oCol.UseColumnTextForButtonValue = true;
dataGridView1.Columns.Add(oCol);
}
}
}
Это ошибка или как мне правильно обновить / сбросить / очистить dgv?
РЕДАКТИРОВАТЬ:
Приведенный выше фрагмент кода был изменен по сравнению с оригиналом. Раскомментируйте строку в коде, чтобы увидеть другое поведение button1 в режиме выполнения.