c# - 绑定(bind)数据源正在改变我的专栏

标签 c# winforms datagridview

我正在以编程方式绑定(bind) DataGridView的数据集到 List<MyType> .我在设计器中设置了列名和类型:

enter image description here

当我第一次绑定(bind)列表时,在填充它之后,一切看起来都很棒:

enter image description here

但是当我将数据集重新绑定(bind)到列表时(以使其在重新填充列表后更新),列名称和类型似乎是从属性名称(注意空格消失)和类型自动生成的:

enter image description here

填充 List 时我的代码看起来像这样:

GridView.DataSource = null;
ListOfItems.Clear();
Populate(ListOfItems);
GridView.DataSource = ListOfItems

我对这种重置绑定(bind)的 hacky 方式不是很满意,但它似乎在其他方面不起作用,修改列表内容不会刷新 View 。

这是GridView设置的问题,还是我需要修改代码?

最佳答案

您应该自己创建和添加列并将 AutoGenerateColumns 设置为 false 以防止生成不需要的列。

this.dataGridView1.AutoGenerateColumns = false;

如果您使用 Windows 窗体设计器执行数据绑定(bind)和创建列,您将受益于标准生成的代码。但是,如果您想自己生成该代码,则应注意代码的多个方面。

例如,当您使用绑定(bind)源时,将网格的数据源设置为该绑定(bind)源,设计人员将查看绑定(bind)源公开的列,并在设计时将这些列添加到您的网格中,并添加该行禁用自动生成列的代码。

关于c# - 绑定(bind)数据源正在改变我的专栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32945653/

相关文章:

c# - DataGridView 项目双击

c# - 转置可编辑 DataGridView

c# - Web API 中的依赖注入(inject)验证

c# - SplitView.PaneClosed 事件可用但不适用于 PaneOpened

c# - MVC3 Visual Studio 2010 中的嵌套文件夹

c# - 我怎样才能确定有多少字符串适合一定的宽度?

c# - 在 WINFORM 中,listView ColumnWidthChanging 事件未触发或替代以禁用调整列大小

c# - 如何让datagridview在离开一行时自动保存记录

.net - 连接 .NET DataSet 中的表以在 DataGridView 中显示

c# - 数字输入用点替换小数逗号