0

我在我的应用程序中使用带有有限对象列表的 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 的值。

我究竟做错了什么?

4

1 回答 1

1

我猜你声明Files.Instance.List为 type List<DelphiFile>,所以当集合改变时,dataGridView不知道,BindingList<DelphiFile>改用。

于 2013-09-18T07:08:02.490 回答