首页 > 解决方案 > DataGridView 是否记住引用?

问题描述

我使用 System.Windows.Forms。没有数据绑定的DataGridView控件。

以下代码可以正常工作。我创建一个列表,添加一个元素并将其分配给 DGV。当前单元格不会为空 - 完美!

List<string> list = new List<string>();  // create an empty list
list.Add("test");                        // adding a new item to the list
dataGridView.DataSource = list;          // assign list as datasource
var cell = dataGridView.CurrentCell;     // cell is not null -> that's expected and OK

现在的问题。当我首先将一个空列表分配给 DGV 时,它会以某种方式记住列表的引用,尽管当我之前将其重置为 null 时......为什么?

List<string> list = new List<string>();  // create an empty list
dataGridView.DataSource = list;          // assign list as datasource BEFORE ADDING element
dataGridView.DataSource = null;          // assign null to reset

list.Add("test");                        // adding a new item to the list
dataGridView.DataSource = list;          // assign list again as datasource
var cell = dataGridView.CurrentCell;     // cell is null, but it SHOULD NOT BE

为什么 DGV 没有设置 CurrentCell?它是否以某种方式记住了列表并且它是空的?

感谢任何答案。

-爵士

标签: c#winformsdatagridview

解决方案


我可以看到数据源保存了引用。因此,如果您将数据源设置为 null,则列表也为 null。


推荐阅读