C# DataGridView List集合 刷新
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# DataGridView List集合 刷新相关的知识,希望对你有一定的参考价值。
在已有的dgv里面 在新增一项,随机更新,现在我出现的问题是这样,我可以做到更新,但是不知道为什么 dgv的列名自动更改,没有找到原因.希望各位老师能能给我刷新的思路,或帮我分析一下上面的问题原因所在。
dataGridView1.DataSource = null;
dataGridView1.DataSource=list;
小菜在此先谢谢了!!!
this.dataGridView1.DataSource = new BindingList<集合类型>(this.有数据的集合); 参考技术A 在DataGridView的设计界面,把列设定,并且设定其绑定字段就可以了追问
已经设计完之后除了 重新设计, 还可以改吗?
追答不需要大的修改啊
追问那怎么修改把列绑定,使用什么属性?
参考技术B 数据库字段与datagridview字段可以绑定,是一一对应的,datagridview.P……,具体方法忘记怎么写了
C# - 删除行后如何刷新 DataGridView
【中文标题】C# - 删除行后如何刷新 DataGridView【英文标题】:C# - how do I refresh DataGridView after removing rows 【发布时间】:2010-12-06 08:14:19 【问题描述】:在我的代码中,我需要在重复间隔后从 DataGridView 中删除行,因此我在计时器到期时调用以下函数:
private void removeRows(DataGridView dgv)
foreach (DataGridViewRow row in dgv.Rows)
// if some condition holds
dgv.Remove(row);
dgv.Refresh();
我知道这些行已成功从 DataGridView 中删除,但无论出于何种原因它们仍保留在显示中。关于我可能做错的任何提示?
【问题讨论】:
【参考方案1】:不需要重新绑定数据网格吗?
dgrv.Datasource = [whatever data source];
dgrv.DataBind();
?
【讨论】:
DataGridView 是一个 winforms 控件,因此不需要数据绑定。如果是 ASP .NET,在他的示例中删除行不会影响数据源。因此,这样做会使 gridview 在删除它们之前显示相同的数据。【参考方案2】:有时刷新数据网格视图是不够的,它的包含父视图也应该刷新。
试试这个:
dgv.Refresh(); // Make sure this comes first
dgv.Parent.Refresh(); // Make sure this comes second
您还可以编辑源并将新数据源附加到控件。
【讨论】:
【参考方案3】:如果您已将数据网格绑定到 Observable Collection(如果没有,那么您应该),那么您将需要实现 INotifyCollectionChanged 接口,以便侦听器收到动态更改的通知,例如添加和删除项目或整个列表时刷新。
HTH
【讨论】:
对不起,不熟悉(c#新手)。你能扩大一点吗?谢谢。 您好,如果您编辑帖子并添加一些有关如何填充数据源的信息,那么我可以为您提供一些指导。干杯。【参考方案4】:如果我的理解正确,您想从 DGV 中删除用户选择的行。
使用 DGV 的 DataGridViewRowCollection 而不是 DataTable 的 DataRowCollection。 DataGridViewRow 具有 Selected 属性,该属性指示是否选择了一行。
一旦确定要删除一行,就可以使用 DataGridViewRowCollection 的 Remove 方法从网格中删除该项目,例如YerDataGridView.Rows.Remove(row)
请注意,此时,虽然该项目已从 DGV 中删除,但仍未从 Access DB 中删除。您需要在 DataSet/DataTable 上调用 TableAdapter Update 方法以将删除提交到数据库,例如YerTableAdapter.Update(YerDataSet)
我通常会在从 DGV 中删除所有要删除的项目后调用一次更新以提交更改。
【讨论】:
【参考方案5】:这段代码可能很有用:
dataGridView.DataSource = null;
dataGridView.Update();
dataGridView.Refresh();
dataGridView.DataSource = SomeDataSource;
希望这会有所帮助。
【讨论】:
【参考方案6】:如果是数据绑定网格,您应该使用绑定源本身而不是网格。
【讨论】:
【参考方案7】:尝试从绑定源中删除实际项目。
【讨论】:
以上是关于C# DataGridView List集合 刷新的主要内容,如果未能解决你的问题,请参考以下文章
c# for循环效率问题,遍历list<string>集合;
winform datagridview 绑定 list .c#