如何在c#中将一个列表的BindingList绑定到DataGridView

本文关键字:列表 一个 BindingList 绑定 DataGridView | 更新日期: 2023-09-27 18:04:56

我正在写一个程序,作为一个excel风格的字典。基本上,它允许用户添加行、编辑行、搜索行等等。我用它来储存和学习外语词汇。我已经有了一个版本,我很满意。它使用BindingList作为DataGridView的数据源,以便跟踪更改并将它们记录回我用来存储所有词汇表的BindingList,并且列表本身由我命名为"Term"的自定义类组成,它具有"英语单词","西班牙语单词","示例"等属性。它不允许用户自定义字段,这就是我的问题所在。它几乎是"硬编码"的,即使我在学习西班牙语或法语,Term类也会使用来自日语的"Kanji"属性。

我希望能够让用户键入他们希望字典显示和跟踪的字段——基本上,他们应该能够从DataGridView中重命名和添加/删除列。我的第一个想法是将其实现为一个List,它存储字段的名称(通过使用List的长度,相应地存储字段的数量)。然后,我将有一个具有List属性的Word类,列表中的每个字符串表示一个字段。然后我为这个Word类创建了一个BindingList,这样我就得到了一个列表的BindingList。

当我试图将我的列表列表绑定到我的DataGridView,网格出现空-它显然不知道我想要的数据如何显示,我有很大的困难弄清楚如何告诉它。我甚至不确定拥有List of Lists的方法是否是实现可定制字段的好方法,但这是我能想到的最好方法。在任何情况下,谁能推荐一种方法来实现这一点,使我可以向表中添加字段,但也跟踪更改并将它们粘贴回原始源?我需要将网格用作用户的编辑工具,不仅可以添加新元素,还可以更改现有的元素。这是一个个人项目,但它让我有点疯狂。昨晚我一直到凌晨5点想弄明白,结果两手空空。非常感谢您的阅读!

如何在c#中将一个列表的BindingList绑定到DataGridView

我看过你的帖子好几次了。我不确定我是否完全理解。如果我没有,请告诉我一些细节,我会尽力帮助你。

如果我必须做一个像excel的DataGridView,我想我会使用数组。我将创建一个256 * 256的数组,并将其作为DataSource。然后在用户编辑之后,读取整个DataGrid并重写,如果它与您最初拥有的数组不同。

我想你可能会对这门课感兴趣。

http://www.codeproject.com/KB/grid/DGVColumnSelector.aspx

允许用户动态显示DataGridView

中显示的列。