【发布时间】:2010-12-26 11:32:39
【问题描述】:
这里的情况很奇怪:我正在使用 L2S 来填充 DataGridView。
代码如下:
private void RefreshUserGrid()
{
var UserQuery = from userRecord in this.DataContext.tblUsers
orderby userRecord.DisplayName
select userRecord;
UsersGridView.DataSource = UserQuery;
//I have also tried
//this.UserBindingSource.DataSource = UserQuery;
//UsersGridView.Datasource = UserBindingSource;
UsersGridView.Columns[0].Visible = false;
}
每当我使用 L2S 从数据库中添加/删除记录时,GridView 都会很好地刷新。
但是,如果有人在编辑网格并犯了错误,我希望他们能够点击刷新按钮并通过从数据源重新加载来消除他们的错误。
对于我的生活,我无法让它工作。
我目前在刷新按钮上使用的代码是这样的:
private void button1_Click(object sender, EventArgs e)
{
this.DataContext.Refresh(RefreshMode.OverwriteCurrentValues);
RefreshUserGrid();
}
但该死的 GridView 仍然不受影响。所发生的只是选定的行变为未选中。
我已经尝试过.Refresh()、.Invalidate(),我已经尝试将 DataSource 更改为 NULL 并再次返回(此处类似帖子的所有建议)....都不起作用。网格刷新的唯一时间是我重新启动应用程序。
我一定错过了一些基本的东西,但我完全被难住了,我的同事也是。
有任何想法吗?
谢谢!
【问题讨论】:
标签: linq-to-sql datagridview c#-3.0 refresh