0

我目前正在开发某种下载管理器,作为一个更大项目的一部分。对于每次下载,我使用一个自定义类FileTransfer来负责下载单个文件。

当下载大量文件时,它们存储在List<FileTransfer> transfersDownloadManager中。

我想要的是 DataGridView 中这些下载的实时表示。

我现在手动将所有FileTransfer属性添加到链接到 DataGridView 的 DataTable。这是静态的,因此需要手动更新进度。

我创建了这个函数:

        for (int i = 0; i < transfers.Count; i++)
        {
            if (transfers[i].State == DownloadState.Active)
            {
                DataRow row = null;
                try
                {
                    row = dtTransfers.Select("ID=" + transfers[i].ID)[0];
                }
                catch { }
                if (row != null)
                    row["progress"] = transfers[i].Progress;
            }
        }

这太脏、容易出错、太耗时等。

当 FileTransfer.Progress 值更改时,有没有办法让 DataTable 中的值自动更改?

4

0 回答 0