繁体   English   中英

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

[英]How to approach data-binding a BindingList of Lists to a DataGridView in C#?

我正在写一个程序,它充当Excel样式的字典。 基本上,它允许用户添加行,编辑行,对它们进行搜索等等。 我用它来存储和学习外语词汇。 我已经安装并运行了一个我很满意的版本。 它使用BindingList作为DataGridView的数据源,以便跟踪更改并将其记录回我用来存储所有词汇的BindingList,并且列表本身由我称为“ Term”的自定义类组成,具有“英语单词”,“西班牙语单词”,“示例”等属性。 它没有做的是让用户自定义字段,这就是我的问题所在。它几乎是“硬编码的”,因为即使我正在学习西班牙语或法语,Term类也将使用日文中的“汉字”属性。

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

当我尝试将列表列表数据绑定到DataGridView时,网格显示为空-显然不知道如何显示数据,并且很难弄清楚如何告诉它。 我什至不确定我拥有列表列表的方法是否是实现可自定义字段的好方法,但这是我能想到的最好的方法。 无论如何,任何人都可以推荐一种解决方法,让我将字段添加到表中,同时跟踪更改并将其粘贴回原始源吗? 我需要将网格用作用户的编辑工具,不仅可以添加新元素,还可以更改现有元素。 这是一个私人项目,但让我有些疯狂。 我直到昨晚5AM才试图弄清楚它,却空手而归。 非常感谢您的阅读!

我已经读了几次您的帖子。 我不确定我是否完全理解。 如果没有,请提供一些详细信息,我会尽力提供帮助。

如果必须执行类似Excel的DataGridView,我想我会使用数组。 我将创建一个256 x 256的数组,并将其作为DataSource。 然后,在用户编辑之后,您将读取整个DataGrid并重写(如果它与原始数组不同)。

我认为您可能对此课程感兴趣:

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

它允许用户动态显示DataGridView显示的列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM