是否有更好的方法来更新数据网格,然后只添加和删除数据源?

时间:2009-09-22 19:30:32

标签: c# winforms datagridview

我有一个列表集合,其中 UserPropDef 是一个包含一些公共属性的自定义类。我想在 DataGrid 中显示此列表的内容。所以我将网格的 DataGrid.DataSource 属性设置为列表,并按照我的意愿显示内容。

现在,如果我在列表中添加或删除项目,我希望 DataGrid 更新。我不能使用 BindingList ,因为这个列表需要序列化。我已经尝试调用 DataGrid Update() Refresh()方法,而且表单似乎没有引起< strong> DataGrid 根据集合的当前内容进行刷新。

唯一有效的方法似乎是再次设置 DataSource 属性。然而,在调试我的代码时,我可以看到在收集更改后,DataGrid的 DataSource 属性实际上仍然引用了正确和更新的集合。

是否有更好的方法可以让 DataGrid 根据当前的 DataSource 进行刷新?

1 个答案:

答案 0 :(得分:1)

我的建议是采取3号门后面的内容:

创建一个实现IBindingList的自定义Serializable List(或者继承BindingList并修复Serializable问题的东西。查看Fixing BindingList...的想法)。