如何在C#中实现将列表的BindingList绑定到DataGridView的数据绑定?

如何在C#中实现将列表的BindingList绑定到DataGridView的数据绑定?,c#,winforms,datagridview,C#,Winforms,Datagridview,我正在写一个程序,它可以作为Excel风格的字典。基本上,它允许用户添加行、编辑行、搜索行等等。我用它来储存和学习外语词汇。 我已经安装并运行了一个我非常满意的版本。它使用BindingList作为DataGridView的数据源,以便跟踪更改并将其记录回BindingList,我使用BindingList存储所有词汇表,而该列表本身由一个名为“Term”的自定义类组成,该类具有“English Word”、“Spanish Word”、“Examples”等属性。它没有做的是让用户自定义字段,

我正在写一个程序,它可以作为Excel风格的字典。基本上,它允许用户添加行、编辑行、搜索行等等。我用它来储存和学习外语词汇。 我已经安装并运行了一个我非常满意的版本。它使用BindingList作为DataGridView的数据源,以便跟踪更改并将其记录回BindingList,我使用BindingList存储所有词汇表,而该列表本身由一个名为“Term”的自定义类组成,该类具有“English Word”、“Spanish Word”、“Examples”等属性。它没有做的是让用户自定义字段,这就是我的问题所在。它几乎是“硬编码”的,因为即使我在学习西班牙语或法语,术语类也将使用来自日语的“汉字”属性

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

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

我已经看过你的帖子好几次了。我不确定我是否完全理解。如果我不知道,请提供一些细节,我会尽力帮助你


如果我必须使用类似DataGridView的Excel,我想我会使用数组。我将创建一个数组,比如256乘256,并将其作为数据源。然后在用户编辑之后,阅读整个DataGrid,如果它与您最初拥有的数组不同,则重写它。

我想您可能对这个类感兴趣:

它允许用户动态显示在
DataGridView