我有2个DataGridViews,它是一种MasterDetail表。我有一个名为“dgw”的Detail DataGridView有问题。它的DataSource是数据表,dgw.DataSource=DataTable;
。在代码中,我做了一些工作,如更改名称,添加一些列,dgw.Columns.Add(NewColumn);
更改列类型,使一些列不可见等。
问题是,当我再次设置dgw的DataSource时,总是在Master DataGridView中更改行时,我在dgw中使用列的所有工作都消失了,我看到“丑陋”列而没有对它们做任何更改
这是我刷新dgw的DataSource的方法,在MasterDataGridView中每次更改行时调用代码。
dgw.DataSource = typeof(DataTable);
dgw.DataSource = GetVCVDataSource(dataTable);
我找到了一些解决方案,我认为第一行应该做的工作,但我可能没有得到这个想法。在dgw.DataSource = null;
之前,我用它来关闭数据源分配期间发生的事件。
我相信必须有一些简单的解决方案,但我无法解决。
感谢您的任何建议。
答案 0 :(得分:1)
我怀疑那里的第一行伤害了你;以下更合适:
xx.DataSource = null;
xx.DataSource = GetVCVDataSource(dataTable);
哪个会重新绑定,而不必担心中间的不同类型。
此外,在某些时候(仅限一次):
xx.AutoGenerateColumns = false;