Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有更好的方法来更新数据网格,而不仅仅是添加和删除数据源?_C#_Winforms_Datagridview - Fatal编程技术网

C# 有没有更好的方法来更新数据网格,而不仅仅是添加和删除数据源?

C# 有没有更好的方法来更新数据网格,而不仅仅是添加和删除数据源?,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个列表集合,其中UserPropDef是一个带有一些公共属性的自定义类。我想在数据网格中显示此列表的内容。因此,我将网格的DataGrid.DataSource属性设置为列表,它按照我的需要显示内容 现在,如果我从列表中添加或删除项目,我希望更新数据网格。我无法使用绑定列表,因为此列表需要序列化。我尝试调用了DataGrid的Update()和Refresh()方法,表单和任何内容似乎都不会导致DataGrid根据集合的当前内容进行刷新 唯一有效的方法似乎是再次设置数据源属性。然而,在调试

我有一个列表集合,其中UserPropDef是一个带有一些公共属性的自定义类。我想在数据网格中显示此列表的内容。因此,我将网格的DataGrid.DataSource属性设置为列表,它按照我的需要显示内容

现在,如果我从列表中添加或删除项目,我希望更新数据网格。我无法使用绑定列表,因为此列表需要序列化。我尝试调用了DataGridUpdate()Refresh()方法,表单和任何内容似乎都不会导致DataGrid根据集合的当前内容进行刷新

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


有没有更好的方法使数据网格基于当前的数据源进行刷新?

我的建议是使用3号门后面的内容:


创建一个实现IBindingList的自定义可序列化列表(或从BindingList继承并修复可序列化问题的东西。请查看想法)。

我的建议是,取3号门后面的东西:


创建一个实现IBindingList的自定义可序列化列表(或从BindingList继承并修复可序列化问题的东西。查看想法)。

Holy bold identifiers,蝙蝠侠!我删除了我的答案,因为我错误地认为你的问题是关于asp.net的。我添加了winforms标签以避免混淆。天哪,蝙蝠侠!我删除了我的答案,因为我错误地认为你的问题是关于asp.net的。我添加了winforms标记以避免混淆。