c# - 刷新 DataGridView.DataSource 的更好方法

标签 c# winforms linq-to-sql datagridview linqdatasource

目前我的应用程序中有一个 DataGridView,我从我的 Linq-to-SQL 类中填充它,就像这样......

    /// <summary>
    /// Delegate to update datagrid, fixes threading issue
    /// </summary>
    private void updateInfo()
    {
        // Linq to datagridview; display all
        var query = from n in dbh.Items select n;
        itemDataGridView.DataSource = query.ToList();
    }

因此,问题是每次我添加新信息并运行此刷新时,表格的焦点都会发生变化,这意味着如果我在一行上,它会将我切换到另一行。 并且有一个事件与行的更改相关联,因此这会导致该事件在列表不断刷新时运行。

我不知道,但我记得在切换到 Linq-to-SQL 有界 DataGridView 之前,有一个 TableAdapter 形成,而不是改变数据库中的数据,你会只需使用此 TableAdapter 插入,它会以正确的方式自动刷新 DataGridView

所以我想知道是否有其他方法可以对每个平滑刷新执行此操作?

最佳答案

对我来说,这听起来不像是 L2S 问题。这听起来更像是您使用的任何网格的问题。 L2S 所做的只是为您的网格提供数据。对我来说,刷新后网格的当前行会发生变化是有道理的。您是否可以禁用网格,将当前行设置为您想要的,然后启用网格?我过去曾这样做过。

兰迪

关于c# - 刷新 DataGridView.DataSource 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1828331/

相关文章:

.net - 使用与声明上下文变量相比有优势吗?

c# - 是否应该对包含TransactionScope的IDisposable类使用finalize方法?

c# - 使用 NuGet Pack 时是否可以在没有 nuspec 文件的情况下指定包名称?

c# - 由字段初始化引起的有害代码爆炸的真实示例是什么?

c# - 这个 C# .NET WinForms 应用程序我做错了什么?

c# - SQL Server 和 C# WinForms 错误

.net - 使用 LINQtoSQL 获取随机行

c# - 使用 C# 在 Artemis 上发送请求响应消息

c# - 我如何以编程方式判断网站上的二进制文件(例如图像)是否在不下载的情况下发生了变化?

c# - 绘制可滚动 datagridview 时出现问题