我有DataGridView
个var
集合,来自两个数据库对象之间的LINQ
join
。我只从结果联接中选择某些列,并将其作为DataSource
属性提供给我的DataGridView
。我的DataGridView
的元数据适用于var
对象的列,并在运行时应用格式。
问题是我需要清除内容并使用var
结果提供新的join
。如果我编码DataGridView.DataSource = null
我将清除内容但也会销毁元数据。下次我提供我的var
集合时,格式化将全部搞砸。
问题是如何清除数据绑定的DataGridView
内容并保留其原始元数据?
我想我可以提供在我加入的对象之后建模的空var
集合,但是有一个本地DataGridView
方法可以清除内容并保留列结构吗?
答案 0 :(得分:1)
尝试
dataGridView1.Rows.Clear();
答案 1 :(得分:1)
如果您为DataGridView
定义列并将AutoGenerateColumns
设置为false
,那么您的网格只会显示您定义的列。即使将DataSource
设置为null,它也会保留列。
示例:
在下面的示例中,网格仅在网格中显示Property1和Property2。此外,如果将数据源设置为null,则网格会保留列。
var column1 = new DataGridViewTextBoxColumn();
column1.DataPropertyName = "Property1";
column1.HeaderText = "Column1";
var column2 = new DataGridViewTextBoxColumn();
column2.DataPropertyName = "Property2";
column2.HeaderText = "Column2";
this.dataGridView1.Columns.Add(column1);
this.dataGridView1.Columns.Add(column2);
this.dataGridView1.AutoGenerateColumns = false;
this.dataGridView1.DataSource = Enumerable.Range(1, 10)
.Select(x => new
{
Property1 = x,
Property2 = x,
Property3 = x
}).ToList();