我正在以编程方式绑定(bind) DataGridView
的数据集到 List<MyType>
.我在设计器中设置了列名和类型:
当我第一次绑定(bind)列表时,在填充它之后,一切看起来都很棒:
但是当我将数据集重新绑定(bind)到列表时(以使其在重新填充列表后更新),列名称和类型似乎是从属性名称(注意空格消失)和类型自动生成的:
填充 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/