2009-12-07 51 views
6

任何人都得到了解释发生了什么?将代码1更改为代码2可以解决问题 - 尽管理论上应该没有区别。 (理论像南瓜击中砖墙一样击打练习)。DataGridView不在c中更新#


代码1:

OutputDataGridView.DataSource = myList; 

代码2:

OutputDataGridView.DataSource = null; 
OutputDataGridView.DataSource = myList; 
+0

凡在本页面的生命周期的数据源分配,什么条件(如有)? – 2009-12-07 07:57:47

+0

我正在创建一个简单的窗体,将一个新的用户对象添加到用户对象列表中。最初,DataSource被分配到现有的用户对象列表。从窗体中的一堆文本字段填充新的User对象后,新对象将添加到列表中。没有更新。我尝试重新分配到相同的列表 - 即代码1.没有更新。我改变了代码2,瞧 - 它的工作。 – 2009-12-07 08:07:08

回答

2

看一看这个链接

simple DataGridView refresh question

+0

谢谢,我必须更详细地阅读这些内容,因为我已经有了一个解决方案,但我不明白它为什么有效 - 有一种说法是“本身消失的问题本身就会自行回归”。我不确定误解修正的模拟是什么,但也许“用黑客修复的代码会被另一个黑客破解” – 2009-12-07 08:15:22

1
protected void btnWhateverClick(object sender, EventArgs e) 
{ 
    myGridView.DataSourceID = String.Empty; 
    myGridView.DataSource = new int[0]; 
    myGridView.DataBind(); 
} 

就大功告成了。

对于参考DataSource in gridview