我有一个列表集合,其中 UserPropDef 是一个包含一些公共属性的自定义类。我想在 DataGrid 中显示此列表的内容。所以我将网格的 DataGrid.DataSource 属性设置为列表,并按照我的意愿显示内容。
现在,如果我在列表中添加或删除项目,我希望 DataGrid 更新。我不能使用 BindingList ,因为这个列表需要序列化。我已经尝试调用 DataGrid 的 Update()和 Refresh()方法,而且表单似乎没有引起< strong> DataGrid 根据集合的当前内容进行刷新。
唯一有效的方法似乎是再次设置 DataSource 属性。然而,在调试我的代码时,我可以看到在收集更改后,DataGrid的 DataSource 属性实际上仍然引用了正确和更新的集合。
是否有更好的方法可以让 DataGrid 根据当前的 DataSource 进行刷新?
答案 0 :(得分:1)
我的建议是采取3号门后面的内容:
创建一个实现IBindingList的自定义Serializable List(或者继承BindingList并修复Serializable问题的东西。查看Fixing BindingList...的想法)。