刷新DataGridView时出现问题

时间:2013-09-18 06:58:21

标签: c# .net winforms

我在我的应用程序中使用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。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我猜您从Files.Instance.List类型声明List<DelphiFile>,因此当更改集合时,dataGridView不知道该情况,请改用BindingList<DelphiFile>。< / p>