gpt4 book ai didi

c# - DataSource刷新后如何保留datagridview的 "schema"

转载 作者:太空宇宙 更新时间:2023-11-03 14:17:10 24 4
gpt4 key购买 nike

我有 2 个 DataGridView,它是一种 MasterDetail 表。我对名为“dgw”的 Detail DataGridView 有疑问。它的 DataSource 是数据表,dgw.DataSource=DataTable;。在代码中,我对列进行了一些操作,例如更改名称、添加一些列、dgw.Columns.Add(NewColumn); 更改列类型、使某些列不可见等。

问题是,当我再次设置 dgw 的 DataSource 时,这总是在 Master DataGridView 中更改行时,我在 dgw 中对列的所有工作都消失了,我看到“丑陋”的列,我没有对它们进行任何更改.

这就是我刷新 dgw 的数据源的方式,每次更改 MasterDataGridView 中的行时都会调用代码。

dgw.DataSource = typeof(DataTable);
dgw.DataSource = GetVCVDataSource(dataTable);

我找到了一些解决方案,我认为第一行应该可以解决问题,但我可能不明白。在 dgw.DataSource = null; 之前,我用它来关闭数据源分配期间发生的事件。

我相信一定有一些简单的解决方案,但我无法解决。

感谢您的任何建议。

最佳答案

我怀疑那里的第一行伤害了你;以下内容更合适:

xx.DataSource = null;
xx.DataSource = GetVCVDataSource(dataTable);

这将重新绑定(bind)而不必担心中间的不同类型。

此外,在早些时候(仅一次):

xx.AutoGenerateColumns = false;

关于c# - DataSource刷新后如何保留datagridview的 "schema",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6321115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com