刷新数据网格视图时出现问题

本文关键字:问题 视图 数据 数据网 网格 刷新 | 更新日期: 2023-09-27 18:31:56

我正在使用带有对象边界列表的DataGridView。所以我有:

grid.DataSource = Files.Instance.List;

在我的表单加载事件中,我想有两个按钮 - 用于从列表中添加和删除项目(因此也从网格中添加),虽然它应该像以下一样简单:

if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    Files.Instance.List.Add(new DelphiFile { FilePath = openFileDialog.FileName });
    grid.Refresh();
}

我只在这里设置开始路径,我希望其余参数由用户在网格视图中设置。该项目已正确添加,但不幸的是它没有出现在列表中,为什么?

我在删除项目时也有问题:

foreach(DataGridViewRow row in grid.SelectedRows)
{
   Files.Instance.List.Remove(row.DataBoundItem as DelphiFile);
}
grid.Refresh();

项目被正确删除,但网格似乎再次没有刷新,我什至收到异常,因为网格中的最后一项没有比 :O 的值。

我做错了什么?

刷新数据网格视图时出现问题

我猜你声明Files.Instance.List为类型 List<DelphiFile> ,所以当集合被更改时,dataGridView不知道这一点,改用BindingList<DelphiFile>